home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / misc / prtfolio / romlist.lzh / SE527.LST < prev    next >
File List  |  1994-10-03  |  244KB  |  8,586 lines

  1. INT_20 Terminate a program
  2. INT_21 DOS Services
  3. INT_25 Disk read sector
  4. INT_26 Disk write sector
  5. INT_27 Terminate and stay resident
  6. INT_28 INT_2A
  7.  
  8. E527:0000   push     cx
  9. E527:0001   add      ax,1A52
  10. E527:0004   push     dx
  11. E527:0005   xor      dl,[bp+si+3B]
  12. E527:0008   push     dx
  13. E527:0009   cld      
  14. E527:000A   mov      ax,00C3
  15. E527:000D   mov      ss,ax
  16. E527:000F   mov      sp,0ABF
  17. E527:0012   mov      ds,ax
  18. E527:0014   push     bx
  19. E527:0015   push     es
  20. E527:0016   push     ax
  21. E527:0017   mov      ax,3102
  22. E527:001A   int      61
  23. E527:001C   pop      es
  24. E527:001D   mov      bx,0EBF
  25. E527:0020   call     4345
  26. E527:0023   mov      [002E],bx
  27. E527:0027   mov      [0030],es
  28. E527:002B   pop      es
  29. E527:002C   pop      bx
  30. E527:002D   mov      word ptr [000C],FFFF
  31. E527:0033   mov      word ptr [000E],FFFF
  32. E527:0039   mov      word ptr [001C],0000
  33. E527:003F   mov      byte ptr [0028],00
  34. E527:0044   call     0408
  35. E527:0047   lds      si,[0010]
  36. E527:004B   push     si
  37. E527:004C   push     ds
  38. E527:004D   les      di,[si+04]
  39. E527:0050   mov      ss:[009E],di
  40. E527:0055   mov      ss:[00A0],es
  41. E527:005A   call     04B4
  42. E527:005D   jb       0087
  43. E527:005F   mov      dx,es:[di+04]
  44. E527:0063   test     dx,8000
  45. E527:0067   je       006E
  46. E527:0069   call     04D9
  47. E527:006C   jmp      009D
  48. E527:006E   push     ds
  49. E527:006F   lds      bx,ss:[002E]
  50. E527:0074   call     0585
  51. E527:0077   call     0526
  52. E527:007A   mov      ss:[002E],bx
  53. E527:007F   mov      ss:[0030],ds
  54. E527:0084   pop      ds
  55. E527:0085   jmp      009D
  56. E527:0087   les      di,[si]
  57. E527:0089   cmp      si,FFFF
  58. E527:008D   pop      ds
  59. E527:008E   pop      si
  60. E527:008F   je       0096
  61. E527:0091   mov      di,FFFF
  62. E527:0094   mov      es,di
  63. E527:0096   mov      [si],di
  64. E527:0098   mov      [si+02],ds
  65. E527:009B   jmp      009D
  66. E527:009D   add      sp,04
  67. E527:00A0   push     si
  68. E527:00A1   push     ds
  69. E527:00A2   lds      si,[si]
  70. E527:00A4   cmp      si,FFFF
  71. E527:00A8   jne      004D
  72. E527:00AA   add      sp,04
  73. E527:00AD   mov      ax,ss
  74. E527:00AF   mov      ds,ax
  75. E527:00B1   mov      byte ptr [0050],02
  76. E527:00B6   mov      byte ptr [0051],02
  77. E527:00BB   mov      word ptr [001E],FFFF
  78. E527:00C1   mov      word ptr [0020],FFFF
  79. E527:00C7   les      bx,[002E]
  80. E527:00CB   call     4345
  81. E527:00CE   xor      di,di
  82. E527:00D0   mov      ax,es
  83. E527:00D2   inc      ax
  84. E527:00D3   mov      es,ax
  85. E527:00D5   mov      bx,[001C]
  86. E527:00D9   cmp      bx,00
  87. E527:00DC   je       0115
  88. E527:00DE   mov      [001E],di
  89. E527:00E2   mov      [0020],es
  90. E527:00E6   mov      cx,0008
  91. E527:00E9   xor      ax,ax
  92. E527:00EB   rep      stosw
  93. E527:00ED   xor      di,di
  94. E527:00EF   mov      word ptr es:[di],FFFF
  95. E527:00F4   mov      word ptr es:[di+02],FFFF
  96. E527:00FA   mov      byte ptr es:[di+04],FF
  97. E527:00FF   mov      ax,es
  98. E527:0101   shr      bx,1
  99. E527:0103   shr      bx,1
  100. E527:0105   shr      bx,1
  101. E527:0107   shr      bx,1
  102. E527:0109   add      ax,bx
  103. E527:010B   inc      ax
  104. E527:010C   mov      es,ax
  105. E527:010E   xor      di,di
  106. E527:0110   mov      byte ptr [012B],04
  107. E527:0115   mov      word ptr ss:[0129],0008
  108. E527:011C   mov      ss:[0032],di
  109. E527:0121   mov      ss:[0034],es
  110. E527:0126   mov      word ptr es:[di+04],0008
  111. E527:012C   mov      word ptr es:[di],FFFF
  112. E527:0131   mov      word ptr es:[di+02],FFFF
  113. E527:0137   add      di,06
  114. E527:013A   mov      cx,ss:[0129]
  115. E527:013F   mov      ax,0035
  116. E527:0142   mul      cx
  117. E527:0144   mov      cx,ax
  118. E527:0146   xor      ax,ax
  119. E527:0148   rep      stosb
  120. E527:014A   dec      ax
  121. E527:014B   mov      [0046],ax
  122. E527:014F   mov      ah,08
  123. E527:0151   int      61
  124. E527:0153   int      12
  125. E527:0155   sub      ax,bx
  126. E527:0157   mov      cl,06
  127. E527:0159   shl      ax,cl
  128. E527:015B   dec      ax
  129. E527:015C   mov      [0049],ax
  130. E527:015F   call     3024
  131. E527:0162   mov      word ptr [0119],FFFF
  132. E527:0168   mov      word ptr [0127],0001
  133. E527:016E   mov      word ptr [0115],0B02
  134. E527:0174   mov      byte ptr [0113],2F
  135. E527:0179   mov      byte ptr [0114],5C
  136. E527:017E   mov      [007E],cs
  137. E527:0182   mov      word ptr [0105],0000
  138. E527:0188   mov      byte ptr [0112],00
  139. E527:018D   mov      byte ptr [0111],00
  140. E527:0192   mov      byte ptr [01BF],0D
  141. E527:0197   mov      ax,00C3
  142. E527:019A   mov      word ptr [00AB],0000
  143. E527:01A0   mov      word ptr [00AD],0000
  144. E527:01A6   call     0462
  145. E527:01A9   call     032C
  146. E527:01AC   call     0370
  147. E527:01AF   mov      word ptr [004C],0080
  148. E527:01B5   mov      [004E],es
  149. E527:01B9   mov      word ptr [00A6],02F2
  150. E527:01BF   mov      [00A8],cs
  151. E527:01C3   mov      al,02
  152. E527:01C5   call     2635
  153. E527:01C8   jb       0228
  154. E527:01CA   mov      bx,ax
  155. E527:01CC   call     27FD
  156. E527:01CF   jb       0228
  157. E527:01D1   call     27FD
  158. E527:01D4   jb       0228
  159. E527:01D6   push     ax
  160. E527:01D7   call     3479
  161. E527:01DA   pop      bx
  162. E527:01DB   mov      ah,3E
  163. E527:01DD   int      21
  164. E527:01DF   dec      bx
  165. E527:01E0   mov      ah,3E
  166. E527:01E2   int      21
  167. E527:01E4   dec      bx
  168. E527:01E5   mov      ah,3E
  169. E527:01E7   int      21
  170. E527:01E9   mov      word ptr [00A6],02F2
  171. E527:01EF   mov      [00A8],cs
  172. E527:01F3   mov      al,02
  173. E527:01F5   call     2635
  174. E527:01F8   jb       0228
  175. E527:01FA   mov      bx,ax
  176. E527:01FC   call     27FD
  177. E527:01FF   jb       0228
  178. E527:0201   call     27FD
  179. E527:0204   jb       0228
  180. E527:0206   mov      word ptr [00A6],02F6
  181. E527:020C   mov      [00A8],cs
  182. E527:0210   mov      al,02
  183. E527:0212   call     2635
  184. E527:0215   jb       0228
  185. E527:0217   mov      word ptr [00A6],02FA
  186. E527:021D   mov      [00A8],cs
  187. E527:0221   mov      al,02
  188. E527:0223   call     2635
  189. E527:0226   jnb      022B
  190. E527:0228   jmp      02FE
  191. E527:022B   mov      ax,0051
  192. E527:022E   mul      byte ptr [0028]
  193. E527:0232   mov      cl,04
  194. E527:0234   push     ax
  195. E527:0235   shr      ax,cl
  196. E527:0237   inc      ax
  197. E527:0238   mov      bx,ax
  198. E527:023A   call     304E
  199. E527:023D   jnb      0242
  200. E527:023F   jmp      02FE
  201. E527:0242   mov      es,ax
  202. E527:0244   xor      di,di
  203. E527:0246   pop      cx
  204. E527:0247   xor      ax,ax
  205. E527:0249   rep      stosb
  206. E527:024B   mov      di,ax
  207. E527:024D   add      al,41
  208. E527:024F   xor      ch,ch
  209. E527:0251   mov      cl,[0028]
  210. E527:0255   jcxz     0273
  211. E527:0257   mov      [0022],di
  212. E527:025B   mov      [0024],es
  213. E527:025F   mov      es:[di],al
  214. E527:0262   mov      byte ptr es:[di+01],3A
  215. E527:0267   mov      byte ptr es:[di+02],5C
  216. E527:026C   inc      al
  217. E527:026E   add      di,51
  218. E527:0271   loop     025F
  219. E527:0273   mov      ax,3103
  220. E527:0276   int      61
  221. E527:0278   cmp      word ptr [0119],FFFF
  222. E527:027E   je       02CA
  223. E527:0280   mov      ax,ss
  224. E527:0282   mov      es,ax
  225. E527:0284   mov      bx,018D
  226. E527:0287   mov      word ptr es:[bx],0000
  227. E527:028C   lds      si,ss:[004C]
  228. E527:0291   mov      es:[bx+02],si
  229. E527:0295   mov      es:[bx+04],ds
  230. E527:0299   mov      word ptr es:[bx+06],005C
  231. E527:029F   mov      es:[bx+08],ds
  232. E527:02A3   mov      word ptr es:[bx+0A],006C
  233. E527:02A9   mov      es:[bx+0C],ds
  234. E527:02AD   lds      dx,ss:[0119]
  235. E527:02B2   mov      ax,4B00
  236. E527:02B5   int      21
  237. E527:02B7   and      word ptr ss:[0105],7FFF
  238. E527:02BE   mov      ax,cs
  239. E527:02C0   mov      ds,ax
  240. E527:02C2   mov      dx,02CD
  241. E527:02C5   nop      
  242. E527:02C6   mov      ah,09
  243. E527:02C8   int      21
  244. E527:02CA   jmp      4D95
  245. E527:02CD   inc      dx
  246. E527:02CE   popa
  247. E527:02CF   and      fs:[bx+72],ch
  248. E527:02D3   and      [di+69],ch
  249. E527:02D6   jnb      034B
  250. E527:02D8   imul     bp,[bp+67],6320
  251. E527:02DD   outsw
  252. E527:02DE   insw
  253. E527:02DF   insw
  254. E527:02E0   popa
  255. E527:02E1   outsb
  256. E527:02E2   and      fs:[bx+di+6E],ch
  257. E527:02E6   je       034D
  258. E527:02E8   jb       035A
  259. E527:02EA   jb       0351
  260. E527:02EC   je       0353
  261. E527:02EE   jb       02FD
  262. E527:02F0   or       ah,[si]
  263. E527:02F2   inc      bx
  264. E527:02F3   dec      di
  265. E527:02F4   dec      si
  266. E527:02F5   add      [bx+di+55],al
  267. E527:02F8   pop      ax
  268. E527:02F9   add      [bx+si+52],dl
  269. E527:02FC   dec      si
  270. E527:02FD   add      [bx+si+0087],bh
  271. E527:0301   int      10
  272. E527:0303   mov      ax,cs
  273. E527:0305   mov      es,ax
  274. E527:0307   mov      ah,13
  275. E527:0309   mov      al,01
  276. E527:030B   mov      bl,07
  277. E527:030D   mov      bh,00
  278. E527:030F   mov      cx,000F
  279. E527:0312   nop      
  280. E527:0313   xor      dx,dx
  281. E527:0315   mov      bp,031D
  282. E527:0318   nop      
  283. E527:0319   int      10
  284. E527:031B   cli      
  285. E527:031C   hlt      
  286. E527:031D   push     bx
  287. E527:031E   jns      0393
  288. E527:0320   je       0387
  289. E527:0322   insw
  290. E527:0323   and      [bp+61],al
  291. E527:0326   imul     bp,[si+75],6572
  292. E527:032B   push     ds
  293. E527:032D   mov      ax,cs
  294. E527:032F   mov      ds,ax
  295. E527:0331   mov      cx,0023
  296. E527:0334   nop      
  297. E527:0335   mov      ax,cx
  298. E527:0337   call     437F
  299. E527:033A   mov      bx,ax
  300. E527:033C   push     ds
  301. E527:033D   call     304E
  302. E527:0340   pop      ds
  303. E527:0341   mov      es,ax
  304. E527:0343   xor      di,di
  305. E527:0345   mov      si,034D
  306. E527:0348   nop      
  307. E527:0349   rep      movsb
  308. E527:034B   pop      ds
  309. E527:034C   ret      
  310. E527:034D   push     ax
  311. E527:034E   inc      cx
  312. E527:034F   push     sp
  313. E527:0350   dec      ax
  314. E527:0351   cmp      ax,4300
  315. E527:0354   dec      di
  316. E527:0355   dec      bp
  317. E527:0356   push     bx
  318. E527:0357   push     ax
  319. E527:0358   inc      bp
  320. E527:0359   inc      bx
  321. E527:035A   cmp      ax,435C
  322. E527:035D   dec      di
  323. E527:035E   dec      bp
  324. E527:035F   dec      bp
  325. E527:0360   inc      cx
  326. E527:0361   dec      si
  327. E527:0362   inc      sp
  328. E527:0363   inc      bx
  329. E527:0365   dec      di
  330. E527:0366   dec      bp
  331. E527:0367   add      [bx+si],al
  332. E527:0369   add      [bx+si],ax
  333. E527:036B   dec      bp
  334. E527:036C   inc      sp
  335. E527:036D   dec      di
  336. E527:036E   push     bx
  337. E527:036F   add      [10BB],bl
  338. E527:0373   add      al,ch
  339. E527:0375   xlatb    
  340. E527:0376   sub      al,8C
  341. E527:0378   ret      1E8B
  342. E527:037B   dec      cx
  343. E527:037C   add      [bp+di+007E],ah
  344. E527:0380   mov      es,ax
  345. E527:0382   xor      di,di
  346. E527:0384   mov      ds,di
  347. E527:0386   mov      cx,0100
  348. E527:0389   xor      al,al
  349. E527:038B   rep      stosb
  350. E527:038D   mov      di,0018
  351. E527:0390   dec      al
  352. E527:0392   mov      cx,0014
  353. E527:0395   rep      stosb
  354. E527:0397   xor      di,di
  355. E527:0399   mov      word ptr es:[di],20CD
  356. E527:039E   mov      es:[di+02],bx
  357. E527:03A2   mov      byte ptr es:[di+05],9A
  358. E527:03A7   mov      word ptr es:[di+06],FEF0
  359. E527:03AD   mov      word ptr es:[di+08],F01D
  360. E527:03B3   push     di
  361. E527:03B4   mov      di,000A
  362. E527:03B7   mov      si,0088
  363. E527:03BA   mov      cx,0006
  364. E527:03BD   rep      movsw
  365. E527:03BF   pop      di
  366. E527:03C0   mov      es:[di+16],es
  367. E527:03C4   mov      word ptr es:[di+2E],0ABF
  368. E527:03CA   mov      es:[di+30],ss
  369. E527:03CE   mov      word ptr es:[di+2C],0000
  370. E527:03D4   dec      dx
  371. E527:03D5   mov      ds,dx
  372. E527:03D7   mov      [di+01],es
  373. E527:03DA   mov      ax,es
  374. E527:03DC   dec      ax
  375. E527:03DD   mov      ds,ax
  376. E527:03DF   mov      [di+01],es
  377. E527:03E2   mov      word ptr es:[di+50],21CD
  378. E527:03E8   mov      byte ptr es:[di+52],CB
  379. E527:03ED   mov      ax,cs
  380. E527:03EF   mov      ds,ax
  381. E527:03F1   mov      si,0405
  382. E527:03F4   nop      
  383. E527:03F5   mov      di,0080
  384. E527:03F8   mov      cx,0003
  385. E527:03FB   nop      
  386. E527:03FC   mov      byte ptr es:[di],02
  387. E527:0400   inc      di
  388. E527:0401   rep      movsb
  389. E527:0403   pop      ds
  390. E527:0404   ret      
  391. E527:0405   das      
  392. E527:0406   push     ax
  393. E527:0407   or       ax,36C5
  394. E527:040A   add      bh,al
  395. E527:040D   inc      sp
  396. E527:040E   add      al,F8
  397. E527:0410   xor      cx,[si+064C]
  398. E527:0414   mov      ss:[0010],si
  399. E527:0419   mov      ss:[0012],ds
  400. E527:041E   mov      ax,si
  401. E527:0420   add      ax,0008
  402. E527:0423   mov      [si],ax
  403. E527:0425   mov      [si+02],ds
  404. E527:0428   mov      si,ax
  405. E527:042A   mov      [si+04],bx
  406. E527:042D   mov      [si+06],es
  407. E527:0430   les      bx,es:[bx]
  408. E527:0433   cmp      bx,FFFF
  409. E527:0437   je       0447
  410. E527:0439   mov      ax,si
  411. E527:043B   add      ax,0008
  412. E527:043E   mov      [si],ax
  413. E527:0440   mov      [si+02],ds
  414. E527:0443   mov      si,ax
  415. E527:0445   jmp      042A
  416. E527:0447   mov      word ptr [si],FFFF
  417. E527:044B   mov      word ptr [si+02],FFFF
  418. E527:0450   add      si,08
  419. E527:0453   mov      ss:[002E],si
  420. E527:0458   mov      ss:[0030],ds
  421. E527:045D   mov      ax,ss
  422. E527:045F   mov      ds,ax
  423. E527:0461   ret      
  424. E527:0462   xor      ax,ax
  425. E527:0464   mov      es,ax
  426. E527:0466   mov      di,0080
  427. E527:0469   mov      ax,32B1
  428. E527:046C   stosw
  429. E527:046D   mov      ax,cs
  430. E527:046F   stosw
  431. E527:0470   mov      ax,44DA
  432. E527:0473   stosw
  433. E527:0474   mov      ax,cs
  434. E527:0476   stosw
  435. E527:0477   mov      ax,4D95
  436. E527:047A   stosw
  437. E527:047B   mov      ax,cs
  438. E527:047D   stosw
  439. E527:047E   mov      ax,32B6
  440. E527:0481   stosw
  441. E527:0482   mov      ax,cs
  442. E527:0484   stosw
  443. E527:0485   mov      ax,32BB
  444. E527:0488   stosw
  445. E527:0489   mov      ax,cs
  446. E527:048B   stosw
  447. E527:048C   mov      ax,05B8
  448. E527:048F   stosw
  449. E527:0490   mov      ax,cs
  450. E527:0492   stosw
  451. E527:0493   mov      ax,05BE
  452. E527:0496   stosw
  453. E527:0497   mov      ax,cs
  454. E527:0499   stosw
  455. E527:049A   mov      ax,32CC
  456. E527:049D   stosw
  457. E527:049E   mov      ax,cs
  458. E527:04A0   stosw
  459. E527:04A1   mov      ax,04B3
  460. E527:04A4   stosw
  461. E527:04A5   mov      ax,cs
  462. E527:04A7   stosw
  463. E527:04A8   mov      di,00A8
  464. E527:04AB   mov      ax,04B3
  465. E527:04AE   stosw
  466. E527:04AF   mov      ax,cs
  467. E527:04B1   stosw
  468. E527:04B2   ret
  469. INT_28 INT_2A
  470. E527:04B3   iret
  471. E527:04B4   push     bx
  472. E527:04B5   push     es
  473. E527:04B6   mov      bx,0088
  474. E527:04B9   mov      byte ptr ss:[0088],17
  475. E527:04BF   mov      byte ptr ss:[008A],00
  476. E527:04C5   mov      ss:[009A],di
  477. E527:04CA   mov      ss:[009C],es
  478. E527:04CF   mov      ax,ss
  479. E527:04D1   mov      es,ax
  480. E527:04D3   call     1C58
  481. E527:04D6   pop      es
  482. E527:04D7   pop      bx
  483. E527:04D8   ret      
  484. E527:04D9   push     ds
  485. E527:04DA   mov      ax,ss
  486. E527:04DC   mov      ds,ax
  487. E527:04DE   test     dx,0010
  488. E527:04E2   je       04EC
  489. E527:04E4   mov      [0018],di
  490. E527:04E8   mov      [001A],es
  491. E527:04EC   test     dx,0008
  492. E527:04F0   je       04FA
  493. E527:04F2   mov      [0014],di
  494. E527:04F6   mov      [0016],es
  495. E527:04FA   test     dx,0004
  496. E527:04FE   je       0508
  497. E527:0500   mov      [002A],di
  498. E527:0504   mov      [002C],es
  499. E527:0508   test     dx,0002
  500. E527:050C   je       0516
  501. E527:050E   mov      [0036],di
  502. E527:0512   mov      [0038],es
  503. E527:0516   test     dx,0001
  504. E527:051A   je       0524
  505. E527:051C   mov      [003A],di
  506. E527:0520   mov      [003C],es
  507. E527:0524   pop      ds
  508. E527:0525   ret      
  509. E527:0526   push     di
  510. E527:0527   push     es
  511. E527:0528   xor      cl,cl
  512. E527:052A   les      di,ss:[009A]
  513. E527:052F   mov      al,[0028]
  514. E527:0533   mov      [bx],al
  515. E527:0535   mov      [bx+01],cl
  516. E527:0538   mov      ax,[009E]
  517. E527:053C   mov      [bx+12],ax
  518. E527:053F   mov      ax,[00A0]
  519. E527:0543   mov      [bx+14],ax
  520. E527:0546   mov      word ptr [bx+18],FFFF
  521. E527:054B   push     di
  522. E527:054C   mov      di,es:[di]
  523. E527:054F   call     143F
  524. E527:0552   pop      di
  525. E527:0553   mov      ax,[bx+02]
  526. E527:0556   cmp      ax,ss:[001C]
  527. E527:055B   jb       0561
  528. E527:055D   mov      [001C],ax
  529. E527:0561   inc      cl
  530. E527:0563   inc      byte ptr ss:[0028]
  531. E527:0568   inc      di
  532. E527:0569   inc      di
  533. E527:056A   mov      ax,bx
  534. E527:056C   add      ax,001D
  535. E527:056F   cmp      cl,ss:[0095]
  536. E527:0574   je       0580
  537. E527:0576   mov      [bx+18],ax
  538. E527:0579   mov      [bx+1A],ds
  539. E527:057C   mov      bx,ax
  540. E527:057E   jmp      052F
  541. E527:0580   mov      bx,ax
  542. E527:0582   pop      es
  543. E527:0583   pop      di
  544. E527:0584   ret      
  545. E527:0585   push     di
  546. E527:0586   push     es
  547. E527:0587   les      di,ss:[000C]
  548. E527:058C   cmp      di,FFFF
  549. E527:0590   jne      059F
  550. E527:0592   mov      ss:[000C],bx
  551. E527:0597   mov      ss:[000E],ds
  552. E527:059C   jmp      05B5
  553. E527:059E   nop
  554. E527:059F   cmp      word ptr es:[di+18],FFFF
  555. E527:05A5   je       05AD
  556. E527:05A7   les      di,es:[di+18]
  557. E527:05AB   jmp      059F
  558. E527:05AD   mov      es:[di+18],bx
  559. E527:05B1   mov      es:[di+1A],ds
  560. E527:05B5   pop      es
  561. E527:05B6   pop      di
  562. E527:05B7   ret
  563. INT_25 Disk read sector
  564. E527:05B8   push     bp
  565. E527:05B9   mov      bp,0004
  566. E527:05BC   jmp      05C4
  567. INT_26 Disk write sector
  568. E527:05BE   push     bp
  569. E527:05BF   mov      bp,0008
  570. E527:05C2   jmp      05C4
  571. E527:05C4   sti      
  572. E527:05C5   push     bx
  573. E527:05C6   push     cx
  574. E527:05C7   push     dx
  575. E527:05C8   push     si
  576. E527:05C9   push     di
  577. E527:05CA   push     ds
  578. E527:05CB   push     es
  579. E527:05CC   mov      si,ds
  580. E527:05CE   mov      di,00C3
  581. E527:05D1   mov      ds,di
  582. E527:05D3   mov      [00AB],sp
  583. E527:05D7   mov      [00AD],ss
  584. E527:05DB   mov      ss,di
  585. E527:05DD   mov      sp,08BF
  586. E527:05E0   push     bx
  587. E527:05E1   call     068E
  588. E527:05E4   jb       064D
  589. E527:05E6   mov      byte ptr es:[bx+02],01
  590. E527:05EB   call     06C6
  591. E527:05EE   jb       0649
  592. E527:05F0   mov      bl,es:[bx+0E]
  593. E527:05F4   cmp      bl,01
  594. E527:05F7   je       0622
  595. E527:05F9   cmp      bl,FF
  596. E527:05FC   je       05FE
  597. E527:05FE   call     068E
  598. E527:0601   jb       064D
  599. E527:0603   mov      byte ptr es:[bx+02],02
  600. E527:0608   call     06C6
  601. E527:060B   jb       0649
  602. E527:060D   push     ds
  603. E527:060E   mov      di,es:[bx+12]
  604. E527:0612   mov      es,es:[bx+14]
  605. E527:0616   lds      bx,[003E]
  606. E527:061A   push     ax
  607. E527:061B   push     dx
  608. E527:061C   call     143F
  609. E527:061F   pop      dx
  610. E527:0620   pop      ax
  611. E527:0621   pop      ds
  612. E527:0622   call     065F
  613. E527:0625   jb       064D
  614. E527:0627   call     068E
  615. E527:062A   jb       064D
  616. E527:062C   mov      [009A],cx
  617. E527:0630   mov      [009C],dx
  618. E527:0634   pop      dx
  619. E527:0635   push     dx
  620. E527:0636   mov      [0096],dx
  621. E527:063A   mov      [0098],si
  622. E527:063E   mov      ax,bp
  623. E527:0640   mov      es:[bx+02],al
  624. E527:0644   call     06C6
  625. E527:0647   jnb      064D
  626. E527:0649   call     06FE
  627. E527:064C   stc      
  628. E527:064D   pop      bx
  629. E527:064E   mov      ss,[00AD]
  630. E527:0652   mov      sp,[00AB]
  631. E527:0656   pop      es
  632. E527:0657   pop      ds
  633. E527:0658   pop      di
  634. E527:0659   pop      si
  635. E527:065A   pop      dx
  636. E527:065B   pop      cx
  637. E527:065C   pop      bx
  638. E527:065D   pop      bp
  639. E527:065E   retf     
  640. E527:065F   push     ax
  641. E527:0660   push     di
  642. E527:0661   push     es
  643. E527:0662   push     dx
  644. E527:0663   call     14A7
  645. E527:0666   mov      ax,es:[di+0D]
  646. E527:066A   dec      ax
  647. E527:066B   mov      dl,es:[di+04]
  648. E527:066F   inc      dl
  649. E527:0671   xor      dh,dh
  650. E527:0673   mul      dx
  651. E527:0675   pop      dx
  652. E527:0676   push     dx
  653. E527:0677   add      ax,es:[di+0B]
  654. E527:067B   add      dx,cx
  655. E527:067D   cmp      dx,ax
  656. E527:067F   pop      dx
  657. E527:0680   pop      es
  658. E527:0681   pop      di
  659. E527:0682   pop      ax
  660. E527:0683   jbe      068C
  661. E527:0685   mov      ah,01
  662. E527:0687   mov      al,01
  663. E527:0689   stc      
  664. E527:068A   jmp      068D
  665. E527:068C   clc      
  666. E527:068D   ret      
  667. E527:068E   push     ax
  668. E527:068F   cld      
  669. E527:0690   call     14A7
  670. E527:0693   jb       06C0
  671. E527:0695   mov      [0051],al
  672. E527:0698   mov      [003E],di
  673. E527:069C   mov      [0040],es
  674. E527:06A0   mov      byte ptr [0088],16
  675. E527:06A5   mov      al,es:[di+01]
  676. E527:06A9   mov      [0089],al
  677. E527:06AC   les      di,es:[di+12]
  678. E527:06B0   mov      [009E],di
  679. E527:06B4   mov      [00A0],es
  680. E527:06B8   push     ds
  681. E527:06B9   pop      es
  682. E527:06BA   mov      bx,0088
  683. E527:06BD   pop      ax
  684. E527:06BE   jmp      06C5
  685. E527:06C0   pop      ax
  686. E527:06C1   mov      ah,01
  687. E527:06C3   mov      al,01
  688. E527:06C5   ret      
  689. E527:06C6   push     ax
  690. E527:06C7   mov      word ptr es:[bx+03],0000
  691. E527:06CD   push     es
  692. E527:06CE   les      di,[009E]
  693. E527:06D2   mov      ax,es:[di+06]
  694. E527:06D6   mov      [00FD],ax
  695. E527:06D9   mov      [00FF],es
  696. E527:06DD   pop      es
  697. E527:06DE   call     dword ptr [00FD]
  698. E527:06E2   push     es
  699. E527:06E3   les      di,[009E]
  700. E527:06E7   mov      ax,es:[di+08]
  701. E527:06EB   mov      [00FD],ax
  702. E527:06EE   pop      es
  703. E527:06EF   call     dword ptr [00FD]
  704. E527:06F3   test     word ptr es:[bx+03],8000
  705. E527:06F9   je       06FC
  706. E527:06FB   stc      
  707. E527:06FC   pop      ax
  708. E527:06FD   ret      
  709. E527:06FE   mov      ax,es:[bx+03]
  710. E527:0702   push     ax
  711. E527:0703   mov      di,cs
  712. E527:0705   mov      es,di
  713. E527:0707   mov      di,071C
  714. E527:070A   nop      
  715. E527:070B   mov      cx,000E
  716. E527:070E   nop      
  717. E527:070F   repne    scasb
  718. E527:0711   mov      di,072A
  719. E527:0714   nop      
  720. E527:0715   add      di,cx
  721. E527:0717   pop      ax
  722. E527:0718   mov      ah,cs:[di]
  723. E527:071B   ret      
  724. E527:071C   db       0F
  725. E527:071D   or       al,0B
  726. E527:071F   or       cl,[bx+di]
  727. E527:0721   or       [bx],al
  728. E527:0723   push     es
  729. E527:0724   add      ax,0304
  730. E527:0727   add      al,[bx+di]
  731. E527:0729   add      [bp+di],al
  732. E527:072B   add      [bx+si+1001],ax
  733. E527:072F   add      [bx+si+01],ax
  734. E527:0732   add      al,01
  735. E527:0734   adc      [bx+si],dl
  736. E527:0736   and      [bx+di],al
  737. Int21_Fn03 Aux input
  738. E527:0738   mov      bx,0003
  739. E527:073B   call     2E21
  740. E527:073E   jb       0765
  741. E527:0740   mov      cx,0001
  742. E527:0743   mov      [00A8],ds
  743. E527:0747   mov      word ptr [00A6],00AA
  744. E527:074D   call     3D37
  745. E527:0750   cmp      ax,cx
  746. E527:0752   jb       074D
  747. E527:0754   mov      al,[00AA]
  748. E527:0757   test     word ptr es:[di+05],0080
  749. E527:075D   je       0768
  750. E527:075F   call     0E68
  751. E527:0762   clc      
  752. E527:0763   jmp      0768
  753. E527:0765   mov      ah,04
  754. E527:0767   stc      
  755. E527:0768   ret      
  756. Int21_Fn04 Aux output
  757. E527:0769   mov      bx,0003
  758. E527:076C   jmp      0771
  759. Int21_Fn05 Prn output
  760. E527:076E   mov      bx,0004
  761. E527:0771   push     dx
  762. E527:0772   call     2E21
  763. E527:0775   pop      dx
  764. E527:0776   jb       07A8
  765. E527:0778   mov      cx,0001
  766. E527:077B   mov      [00A8],ds
  767. E527:077F   mov      word ptr [00A6],00AA
  768. E527:0785   mov      [00AA],dl
  769. E527:0789   test     word ptr es:[di+05],0080
  770. E527:078F   je       0794
  771. E527:0791   call     0ECD
  772. E527:0794   call     3C03
  773. E527:0797   cmp      ax,cx
  774. E527:0799   jb       0794
  775. E527:079B   test     word ptr es:[di+05],0080
  776. E527:07A1   je       07AB
  777. E527:07A3   call     0E68
  778. E527:07A6   jmp      07AB
  779. E527:07A8   mov      ah,04
  780. E527:07AA   stc      
  781. E527:07AB   ret      
  782. E527:07AC   push     ds
  783. E527:07AD   xor      ah,ah
  784. E527:07AF   push     ax
  785. E527:07B0   mov      dx,[001C]
  786. E527:07B4   mov      cl,04
  787. E527:07B6   shr      dx,cl
  788. E527:07B8   inc      dl
  789. E527:07BA   mul      dl
  790. E527:07BC   mov      bx,ax
  791. E527:07BE   push     dx
  792. E527:07BF   call     304E
  793. E527:07C2   pop      dx
  794. E527:07C3   pop      bx
  795. E527:07C4   jb       0800
  796. E527:07C6   lds      si,[001E]
  797. E527:07CA   cmp      word ptr [si],FFFF
  798. E527:07CE   je       07D4
  799. E527:07D0   lds      si,[si]
  800. E527:07D2   jmp      07CA
  801. E527:07D4   mov      es,ax
  802. E527:07D6   xor      di,di
  803. E527:07D8   xor      ax,ax
  804. E527:07DA   mov      cx,0008
  805. E527:07DD   rep      stosw
  806. E527:07DF   mov      [si],ax
  807. E527:07E1   mov      [si+02],es
  808. E527:07E4   mov      byte ptr [si+04],FF
  809. E527:07E8   mov      si,ax
  810. E527:07EA   mov      ax,es
  811. E527:07EC   mov      ds,ax
  812. E527:07EE   add      ax,dx
  813. E527:07F0   dec      bx
  814. E527:07F1   jne      07D4
  815. E527:07F3   mov      word ptr [si],FFFF
  816. E527:07F7   mov      word ptr [si+02],FFFF
  817. E527:07FC   mov      byte ptr [si+04],FF
  818. E527:0800   pop      ds
  819. E527:0801   ret      
  820. E527:0802   push     cx
  821. E527:0803   jcxz     082B
  822. E527:0805   mov      ax,bx
  823. E527:0807   add      ax,cx
  824. E527:0809   jb       0816
  825. E527:080B   cmp      ax,[si+02]
  826. E527:080E   ja       0816
  827. E527:0810   call     0858
  828. E527:0813   jmp      082B
  829. E527:0815   nop      
  830. E527:0816   push     cx
  831. E527:0817   mov      cx,[si+02]
  832. E527:081A   sub      cx,bx
  833. E527:081C   call     0858
  834. E527:081F   mov      ax,cx
  835. E527:0821   pop      cx
  836. E527:0822   sub      cx,ax
  837. E527:0824   inc      dx
  838. E527:0825   je       082B
  839. E527:0827   xor      bx,bx
  840. E527:0829   jmp      0805
  841. E527:082B   pop      cx
  842. E527:082C   ret      
  843. E527:082D   push     cx
  844. E527:082E   jcxz     0856
  845. E527:0830   mov      ax,bx
  846. E527:0832   add      ax,cx
  847. E527:0834   jb       0841
  848. E527:0836   cmp      ax,[si+02]
  849. E527:0839   ja       0841
  850. E527:083B   call     086E
  851. E527:083E   jmp      0856
  852. E527:0840   nop      
  853. E527:0841   push     cx
  854. E527:0842   mov      cx,[si+02]
  855. E527:0845   sub      cx,bx
  856. E527:0847   call     086E
  857. E527:084A   mov      ax,cx
  858. E527:084C   pop      cx
  859. E527:084D   sub      cx,ax
  860. E527:084F   inc      dx
  861. E527:0850   je       0856
  862. E527:0852   xor      bx,bx
  863. E527:0854   jmp      0830
  864. E527:0856   pop      cx
  865. E527:0857   ret      
  866. E527:0858   push     cx
  867. E527:0859   push     si
  868. E527:085A   push     ds
  869. E527:085B   push     di
  870. E527:085C   push     es
  871. E527:085D   call     088B
  872. E527:0860   push     es
  873. E527:0861   pop      ds
  874. E527:0862   mov      si,di
  875. E527:0864   add      si,bx
  876. E527:0866   pop      es
  877. E527:0867   pop      di
  878. E527:0868   rep      movsb
  879. E527:086A   pop      ds
  880. E527:086B   pop      si
  881. E527:086C   pop      cx
  882. E527:086D   ret      
  883. E527:086E   push     cx
  884. E527:086F   push     si
  885. E527:0870   push     ds
  886. E527:0871   push     es
  887. E527:0872   push     di
  888. E527:0873   push     es
  889. E527:0874   call     088B
  890. E527:0877   pop      ds
  891. E527:0878   pop      si
  892. E527:0879   add      di,bx
  893. E527:087B   rep      movsb
  894. E527:087D   xor      di,di
  895. E527:087F   or       byte ptr es:[di+05],01
  896. E527:0884   mov      di,si
  897. E527:0886   pop      es
  898. E527:0887   pop      ds
  899. E527:0888   pop      si
  900. E527:0889   pop      cx
  901. E527:088A   ret
  902. E527:088B   push     bx
  903. E527:088C   push     si
  904. E527:088D   push     ds
  905. E527:088E   mov      al,[0051]
  906. E527:0892   les      di,ss:[001E]
  907. E527:0897   cmp      es:[di+06],dx
  908. E527:089B   jne      08B0
  909. E527:089D   cmp      es:[di+04],al
  910. E527:08A1   jne      08B0
  911. E527:08A3   test     byte ptr es:[di+05],02
  912. E527:08A8   je       08B0
  913. E527:08AA   call     0997
  914. E527:08AD   jmp      0919
  915. E527:08AF   nop      
  916. E527:08B0   les      di,es:[di]
  917. E527:08B3   cmp      di,FFFF
  918. E527:08B7   jne      0897
  919. E527:08B9   les      di,ss:[001E]
  920. E527:08BE   test     byte ptr es:[di+05],01
  921. E527:08C3   je       08D4
  922. E527:08C5   push     ax
  923. E527:08C6   push     dx
  924. E527:08C7   mov      dx,es:[di+06]
  925. E527:08CB   mov      al,es:[di+04]
  926. E527:08CF   call     0A21
  927. E527:08D2   pop      dx
  928. E527:08D3   pop      ax
  929. E527:08D4   call     09F7
  930. E527:08D7   mov      [si],di
  931. E527:08D9   mov      [si+02],es
  932. E527:08DC   lds      si,es:[di]
  933. E527:08DF   mov      ss:[001E],si
  934. E527:08E4   mov      ss:[0020],ds
  935. E527:08E9   mov      word ptr es:[di],FFFF
  936. E527:08EE   mov      word ptr es:[di+02],FFFF
  937. E527:08F4   mov      byte ptr es:[di+05],00
  938. E527:08F9   mov      es:[di+06],dx
  939. E527:08FD   mov      es:[di+04],al
  940. E527:0901   push     di
  941. E527:0902   push     es
  942. E527:0903   call     14A7
  943. E527:0906   mov      si,di
  944. E527:0908   mov      ax,es
  945. E527:090A   mov      ds,ax
  946. E527:090C   pop      es
  947. E527:090D   pop      di
  948. E527:090E   mov      es:[di+0A],si
  949. E527:0912   mov      es:[di+0C],ds
  950. E527:0916   call     0A0E
  951. E527:0919   add      di,10
  952. E527:091C   pop      ds
  953. E527:091D   pop      si
  954. E527:091E   pop      bx
  955. E527:091F   ret      
  956. E527:0920   mov      al,[0051]
  957. E527:0924   les      di,ss:[001E]
  958. E527:0929   cmp      di,FFFF
  959. E527:092D   je       0948
  960. E527:092F   cmp      es:[di+04],al
  961. E527:0933   jne      0943
  962. E527:0935   cmp      byte ptr es:[di+05],03
  963. E527:093A   jne      0943
  964. E527:093C   mov      dx,es:[di+06]
  965. E527:0940   call     0A21
  966. E527:0943   les      di,es:[di]
  967. E527:0946   jmp      0929
  968. E527:0948   ret      
  969. E527:0949   push     es
  970. E527:094A   mov      al,[0051]
  971. E527:094E   les      di,ss:[001E]
  972. E527:0953   cmp      di,FFFF
  973. E527:0957   je       096E
  974. E527:0959   cmp      es:[di+04],al
  975. E527:095D   jne      0969
  976. E527:095F   mov      byte ptr es:[di+04],FF
  977. E527:0964   mov      byte ptr es:[di+05],00
  978. E527:0969   les      di,es:[di]
  979. E527:096C   jmp      0953
  980. E527:096E   pop      es
  981. E527:096F   ret      
  982. E527:0970   push     es
  983. E527:0971   les      di,ss:[001E]
  984. E527:0976   mov      al,[0051]
  985. E527:097A   cmp      di,FFFF
  986. E527:097E   je       0995
  987. E527:0980   cmp      es:[di+04],al
  988. E527:0984   jne      0990
  989. E527:0986   test     byte ptr es:[di+05],01
  990. E527:098B   je       0990
  991. E527:098D   stc
  992. E527:098E   jmp      0995
  993. E527:0990   les      di,es:[di]
  994. E527:0993   jmp      097A
  995. E527:0995   pop      es
  996. E527:0996   ret      
  997. E527:0997   push     ax
  998. E527:0998   push     dx
  999. E527:0999   cmp      word ptr es:[di+02],FFFF
  1000. E527:099F   jne      09A8
  1001. E527:09A1   cmp      word ptr es:[di],FFFF
  1002. E527:09A6   je       09F4
  1003. E527:09A8   lds      si,ss:[001E]
  1004. E527:09AD   mov      ax,ds
  1005. E527:09AF   mov      bx,es
  1006. E527:09B1   cmp      ax,bx
  1007. E527:09B3   jne      09CA
  1008. E527:09B5   cmp      si,di
  1009. E527:09B7   jne      09CA
  1010. E527:09B9   lds      si,es:[di]
  1011. E527:09BC   mov      ss:[001E],si
  1012. E527:09C1   mov      ss:[0020],ds
  1013. E527:09C6   jmp      09E1
  1014. E527:09C8   lds      si,[si]
  1015. E527:09CA   mov      ax,es
  1016. E527:09CC   cmp      ax,[si+02]
  1017. E527:09CF   jne      09C8
  1018. E527:09D1   cmp      di,[si]
  1019. E527:09D3   jne      09C8
  1020. E527:09D5   mov      ax,es:[di]
  1021. E527:09D8   mov      [si],ax
  1022. E527:09DA   mov      ax,es:[di+02]
  1023. E527:09DE   mov      [si+02],ax
  1024. E527:09E1   call     09F7
  1025. E527:09E4   mov      [si],di
  1026. E527:09E6   mov      [si+02],es
  1027. E527:09E9   mov      word ptr es:[di],FFFF
  1028. E527:09EE   mov      word ptr es:[di+02],FFFF
  1029. E527:09F4   pop      dx
  1030. E527:09F5   pop      ax
  1031. E527:09F6   ret      
  1032. E527:09F7   lds      si,ss:[001E]
  1033. E527:09FC   cmp      si,FFFF
  1034. E527:0A00   je       0A0D
  1035. E527:0A02   cmp      word ptr [si+02],FFFF
  1036. E527:0A07   je       0A0D
  1037. E527:0A09   lds      si,[si]
  1038. E527:0A0B   jmp      0A02
  1039. E527:0A0D   ret      
  1040. E527:0A0E   push     es
  1041. E527:0A0F   call     0A44
  1042. E527:0A12   mov      byte ptr es:[bx+02],04
  1043. E527:0A17   call     1C58
  1044. E527:0A1A   pop      es
  1045. E527:0A1B   mov      byte ptr es:[di+05],02
  1046. E527:0A20   ret      
  1047. E527:0A21   push     ax
  1048. E527:0A22   push     es
  1049. E527:0A23   call     0A44
  1050. E527:0A26   mov      byte ptr es:[bx+02],08
  1051. E527:0A2B   test     word ptr ss:[0105],0400
  1052. E527:0A32   je       0A39
  1053. E527:0A34   mov      byte ptr es:[bx+02],09
  1054. E527:0A39   call     1C58
  1055. E527:0A3C   pop      es
  1056. E527:0A3D   pop      ax
  1057. E527:0A3E   and      byte ptr es:[di+05],FE
  1058. E527:0A43   ret      
  1059. E527:0A44   push     di
  1060. E527:0A45   lds      si,es:[di+0A]
  1061. E527:0A49   mov      al,[si+01]
  1062. E527:0A4C   mov      ah,[si+16]
  1063. E527:0A4F   lds      si,[si+12]
  1064. E527:0A52   mov      ss:[009E],si
  1065. E527:0A57   mov      ss:[00A0],ds
  1066. E527:0A5C   add      di,10
  1067. E527:0A5F   mov      bx,0088
  1068. E527:0A62   mov      byte ptr ss:[bx],16
  1069. E527:0A66   mov      ss:[bx+01],al
  1070. E527:0A6A   mov      ss:[bx+0D],ah
  1071. E527:0A6E   mov      ss:[bx+0E],di
  1072. E527:0A72   mov      ss:[bx+10],es
  1073. E527:0A76   mov      word ptr ss:[bx+12],0001
  1074. E527:0A7C   mov      ss:[bx+14],dx
  1075. E527:0A80   mov      ax,ss
  1076. E527:0A82   mov      es,ax
  1077. E527:0A84   pop      di
  1078. E527:0A85   ret      
  1079. Int21_Fn01 Keyboard input
  1080. E527:0A86   call     0B44
  1081. E527:0A89   mov      dl,al
  1082. E527:0A8B   push     ax
  1083. E527:0A8C   call     0F3F
  1084. E527:0A8F   push     dx
  1085. E527:0A90   call     2E21
  1086. E527:0A93   pop      dx
  1087. E527:0A94   jb       0AB9
  1088. E527:0A96   mov      cx,0001
  1089. E527:0A99   mov      [00AA],dl
  1090. E527:0A9D   mov      word ptr [00A6],00AA
  1091. E527:0AA3   mov      [00A8],ds
  1092. E527:0AA7   test     word ptr es:[di+05],0080
  1093. E527:0AAD   je       0AB2
  1094. E527:0AAF   call     0ECD
  1095. E527:0AB2   call     3C03
  1096. E527:0AB5   call     0E68
  1097. E527:0AB8   pop      ax
  1098. E527:0AB9   ret      
  1099. Int21_Fn02 Display output
  1100. E527:0ABA   push     ax
  1101. E527:0ABB   push     bx
  1102. E527:0ABC   push     cx
  1103. E527:0ABD   push     di
  1104. E527:0ABE   push     es
  1105. E527:0ABF   call     0F3F
  1106. E527:0AC2   push     dx
  1107. E527:0AC3   call     2E21
  1108. E527:0AC6   pop      dx
  1109. E527:0AC7   jb       0AEB
  1110. E527:0AC9   mov      cx,0001
  1111. E527:0ACC   mov      [00AA],dl
  1112. E527:0AD0   mov      word ptr [00A6],00AA
  1113. E527:0AD6   mov      [00A8],ds
  1114. E527:0ADA   test     word ptr es:[di+05],0080
  1115. E527:0AE0   je       0AE5
  1116. E527:0AE2   call     0ECD
  1117. E527:0AE5   call     3C03
  1118. E527:0AE8   call     0E68
  1119. E527:0AEB   pop      es
  1120. E527:0AEC   pop      di
  1121. E527:0AED   pop      cx
  1122. E527:0AEE   pop      bx
  1123. E527:0AEF   pop      ax
  1124. E527:0AF0   ret      
  1125. Int21_Fn06 Console I/O
  1126. E527:0AF1   cmp      dl,FF
  1127. E527:0AF4   jne      0B05
  1128. E527:0AF6   call     0E13
  1129. E527:0AF9   or       al,al
  1130. E527:0AFB   je       0B23
  1131. E527:0AFD   pushf
  1132. E527:0AFE   call     0B24
  1133. E527:0B01   popf
  1134. E527:0B02   jmp      0B23
  1135. E527:0B04   nop      
  1136. E527:0B05   call     0F3F
  1137. E527:0B08   push     dx
  1138. E527:0B09   call     2E21
  1139. E527:0B0C   pop      dx
  1140. E527:0B0D   jb       0B23
  1141. E527:0B0F   mov      cx,0001
  1142. E527:0B12   mov      [00AA],dl
  1143. E527:0B16   mov      word ptr [00A6],00AA
  1144. E527:0B1C   mov      [00A8],ds
  1145. E527:0B20   call     3C03
  1146. E527:0B23   ret      
  1147. Int21_Fn07 No echo unfilterted console input
  1148. E527:0B24   mov      bx,0000
  1149. E527:0B27   call     2E21
  1150. E527:0B2A   jb       0B43
  1151. E527:0B2C   mov      cx,0001
  1152. E527:0B2F   mov      word ptr [00A6],00AA
  1153. E527:0B35   mov      [00A8],ds
  1154. E527:0B39   call     3D37
  1155. E527:0B3C   cmp      ax,cx
  1156. E527:0B3E   jb       0B39
  1157. E527:0B40   mov      al,[00AA]
  1158. E527:0B43   ret      
  1159. Int21_Fn08 No echo console input
  1160. E527:0B44   push     bx
  1161. E527:0B45   push     ax
  1162. E527:0B46   push     cx
  1163. E527:0B47   push     di
  1164. E527:0B48   mov      bx,0000
  1165. E527:0B4B   call     2E21
  1166. E527:0B4E   jb       0B74
  1167. E527:0B50   mov      cx,0001
  1168. E527:0B53   mov      word ptr [00A6],00AA
  1169. E527:0B59   mov      [00A8],ds
  1170. E527:0B5D   call     3D37
  1171. E527:0B60   cmp      ax,cx
  1172. E527:0B62   jb       0B5D
  1173. E527:0B64   mov      al,[00AA]
  1174. E527:0B67   test     word ptr es:[di+05],0080
  1175. E527:0B6D   je       0B74
  1176. E527:0B6F   call     0EA0
  1177. E527:0B72   jne      0B5D
  1178. E527:0B74   pop      di
  1179. E527:0B75   pop      cx
  1180. E527:0B76   pop      bx
  1181. E527:0B77   mov      ah,bh
  1182. E527:0B79   pop      bx
  1183. E527:0B7A   ret      
  1184. Int21_Fn09 Display string
  1185. E527:0B7B   push     ax
  1186. E527:0B7C   call     0F3F
  1187. E527:0B7F   push     dx
  1188. E527:0B80   call     2E21
  1189. E527:0B83   pop      dx
  1190. E527:0B84   jb       0BCE
  1191. E527:0B86   les      di,[00A6]
  1192. E527:0B8A   mov      cx,FFFF
  1193. E527:0B8D   mov      al,24
  1194. E527:0B8F   mov      si,di
  1195. E527:0B91   repne    scasb
  1196. E527:0B93   jne      0BCE
  1197. E527:0B95   inc      cx
  1198. E527:0B96   inc      cx
  1199. E527:0B97   xor      dx,dx
  1200. E527:0B99   sub      dx,cx
  1201. E527:0B9B   je       0BCE
  1202. E527:0B9D   lodsb    es:
  1203. E527:0B9F   mov      cx,0001
  1204. E527:0BA2   mov      [00AA],al
  1205. E527:0BA5   mov      word ptr [00A6],00AA
  1206. E527:0BAB   mov      [00A8],ds
  1207. E527:0BAF   push     dx
  1208. E527:0BB0   push     si
  1209. E527:0BB1   push     es
  1210. E527:0BB2   les      di,ss:[00A2]
  1211. E527:0BB7   test     word ptr es:[di+05],0080
  1212. E527:0BBD   je       0BC2
  1213. E527:0BBF   call     0ECD
  1214. E527:0BC2   call     3C03
  1215. E527:0BC5   call     0E68
  1216. E527:0BC8   pop      es
  1217. E527:0BC9   pop      si
  1218. E527:0BCA   pop      dx
  1219. E527:0BCB   dec      dx
  1220. E527:0BCC   jmp      0B9B
  1221. E527:0BCE   pop      ax
  1222. E527:0BCF   ret      
  1223. Int21_Fn0A Bufferde string input
  1224. E527:0BD0   push     ax
  1225. E527:0BD1   mov      al,[0112]
  1226. E527:0BD4   push     ax
  1227. E527:0BD5   and      word ptr [0105],DFFF
  1228. E527:0BDB   les      di,[00A6]
  1229. E527:0BDF   mov      cl,es:[di]
  1230. E527:0BE2   xor      ch,ch
  1231. E527:0BE4   dec      cx
  1232. E527:0BE5   jne      0BEA
  1233. E527:0BE7   jmp      0D49
  1234. E527:0BEA   mov      bx,01BF
  1235. E527:0BED   mov      si,bx
  1236. E527:0BEF   mov      ax,ds
  1237. E527:0BF1   mov      es,ax
  1238. E527:0BF3   mov      bp,02BF
  1239. E527:0BF6   mov      di,bp
  1240. E527:0BF8   add      cx,bp
  1241. E527:0BFA   call     0D4C
  1242. E527:0BFD   call     0EA0
  1243. E527:0C00   cmp      al,00
  1244. E527:0C02   je       0C67
  1245. E527:0C04   cmp      al,1B
  1246. E527:0C06   je       0C23
  1247. E527:0C08   cmp      al,0D
  1248. E527:0C0A   jne      0C0F
  1249. E527:0C0C   jmp      0D1F
  1250. E527:0C0F   cmp      al,08
  1251. E527:0C11   je       0C43
  1252. E527:0C13   cmp      di,cx
  1253. E527:0C15   jne      0C1E
  1254. E527:0C17   mov      dl,07
  1255. E527:0C19   call     0D68
  1256. E527:0C1C   jmp      0BFA
  1257. E527:0C1E   call     0D98
  1258. E527:0C21   jmp      0BFA
  1259. E527:0C23   mov      dl,5C
  1260. E527:0C25   call     0D68
  1261. E527:0C28   mov      dl,0D
  1262. E527:0C2A   call     0D68
  1263. E527:0C2D   mov      dl,0A
  1264. E527:0C2F   call     0D68
  1265. E527:0C32   pop      ax
  1266. E527:0C33   xor      cx,cx
  1267. E527:0C35   mov      cl,al
  1268. E527:0C37   mov      dl,20
  1269. E527:0C39   jcxz     0C40
  1270. E527:0C3B   call     0D68
  1271. E527:0C3E   loop     0C39
  1272. E527:0C40   pop      ax
  1273. E527:0C41   jmp      0BD0
  1274. E527:0C43   cmp      si,bx
  1275. E527:0C45   je       0C48
  1276. E527:0C47   dec      si
  1277. E527:0C48   cmp      di,bp
  1278. E527:0C4A   je       0BFA
  1279. E527:0C4C   dec      di
  1280. E527:0C4D   mov      al,es:[di]
  1281. E527:0C50   cmp      al,09
  1282. E527:0C52   jne      0C59
  1283. E527:0C54   call     0DBE
  1284. E527:0C57   jmp      0BFA
  1285. E527:0C59   push     ax
  1286. E527:0C5A   call     0E03
  1287. E527:0C5D   pop      ax
  1288. E527:0C5E   cmp      al,20
  1289. E527:0C60   jnb      0CB5
  1290. E527:0C62   call     0E03
  1291. E527:0C65   jmp      0BFA
  1292. E527:0C67   call     0D4C
  1293. E527:0C6A   cmp      al,4B
  1294. E527:0C6C   je       0C43
  1295. E527:0C6E   cmp      al,3F
  1296. E527:0C70   je       0CC2
  1297. E527:0C72   cmp      al,52
  1298. E527:0C74   je       0CAF
  1299. E527:0C76   cmp      al,3E
  1300. E527:0C78   je       0CB8
  1301. E527:0C7A   cmp      al,53
  1302. E527:0C7C   je       0CA6
  1303. E527:0C7E   cmp      di,cx
  1304. E527:0C80   jne      0C8A
  1305. E527:0C82   mov      dl,07
  1306. E527:0C84   call     0D68
  1307. E527:0C87   jmp      0BFA
  1308. E527:0C8A   cmp      al,40
  1309. E527:0C8C   je       0D06
  1310. E527:0C8E   cmp      byte ptr [si],0D
  1311. E527:0C91   je       0CB5
  1312. E527:0C93   cmp      al,4D
  1313. E527:0C95   je       0CDF
  1314. E527:0C97   cmp      al,3B
  1315. E527:0C99   je       0CDF
  1316. E527:0C9B   cmp      al,3C
  1317. E527:0C9D   je       0D0E
  1318. E527:0C9F   cmp      al,3D
  1319. E527:0CA1   je       0CF1
  1320. E527:0CA3   jmp      0BFA
  1321. E527:0CA6   cmp      byte ptr [si],0D
  1322. E527:0CA9   je       0CB5
  1323. E527:0CAB   inc      si
  1324. E527:0CAC   jmp      0BFA
  1325. E527:0CAF   xor      word ptr [0105],2000
  1326. E527:0CB5   jmp      0BFA
  1327. E527:0CB8   push     cx
  1328. E527:0CB9   call     0D82
  1329. E527:0CBC   add      si,cx
  1330. E527:0CBE   pop      cx
  1331. E527:0CBF   jmp      0BFA
  1332. E527:0CC2   cmp      di,bp
  1333. E527:0CC4   je       0CB5
  1334. E527:0CC6   mov      cx,di
  1335. E527:0CC8   sub      cx,bp
  1336. E527:0CCA   mov      di,bp
  1337. E527:0CCC   mov      si,bx
  1338. E527:0CCE   xchg     si,di
  1339. E527:0CD0   rep      movsb
  1340. E527:0CD2   mov      al,0D
  1341. E527:0CD4   stosb
  1342. E527:0CD5   xchg     di,si
  1343. E527:0CD7   mov      dl,40
  1344. E527:0CD9   call     0D68
  1345. E527:0CDC   jmp      0C28
  1346. E527:0CDF   mov      al,[si]
  1347. E527:0CE1   call     0D98
  1348. E527:0CE4   test     word ptr ss:[0105],2000
  1349. E527:0CEB   je       0CEE
  1350. E527:0CED   inc      si
  1351. E527:0CEE   jmp      0BFA
  1352. E527:0CF1   mov      al,[si]
  1353. E527:0CF3   cmp      al,0D
  1354. E527:0CF5   je       0CB5
  1355. E527:0CF7   call     0D98
  1356. E527:0CFA   test     word ptr ss:[0105],2000
  1357. E527:0D01   je       0D04
  1358. E527:0D03   inc      si
  1359. E527:0D04   jmp      0CF1
  1360. E527:0D06   mov      al,1A
  1361. E527:0D08   call     0D98
  1362. E527:0D0B   jmp      0BFA
  1363. E527:0D0E   push     cx
  1364. E527:0D0F   call     0D82
  1365. E527:0D12   jcxz     0D1B
  1366. E527:0D14   mov      al,[si]
  1367. E527:0D16   call     0D98
  1368. E527:0D19   loop     0D14
  1369. E527:0D1B   pop      cx
  1370. E527:0D1C   jmp      0BFA
  1371. E527:0D1F   stosb
  1372. E527:0D20   mov      dl,al
  1373. E527:0D22   call     0D68
  1374. E527:0D25   push     es
  1375. E527:0D26   mov      ax,es
  1376. E527:0D28   mov      ds,ax
  1377. E527:0D2A   mov      cx,di
  1378. E527:0D2C   sub      cx,bp
  1379. E527:0D2E   mov      si,bp
  1380. E527:0D30   les      di,ss:[00A6]
  1381. E527:0D35   inc      di
  1382. E527:0D36   mov      al,cl
  1383. E527:0D38   dec      al
  1384. E527:0D3A   stosb
  1385. E527:0D3B   push     cx
  1386. E527:0D3C   rep      movsb
  1387. E527:0D3E   pop      cx
  1388. E527:0D3F   mov      si,bp
  1389. E527:0D41   pop      es
  1390. E527:0D42   mov      di,bx
  1391. E527:0D44   rep      movsb
  1392. E527:0D46   mov      al,0D
  1393. E527:0D48   stosb
  1394. E527:0D49   pop      ax
  1395. E527:0D4A   pop      ax
  1396. E527:0D4B   ret
  1397. E527:0D4C   push     si
  1398. E527:0D4D   push     es
  1399. E527:0D4E   push     word ptr ss:[00A6]
  1400. E527:0D53   push     word ptr ss:[00A8]
  1401. E527:0D58   call     0B44
  1402. E527:0D5B   pop      word ptr ss:[00A8]
  1403. E527:0D60   pop      word ptr ss:[00A6]
  1404. E527:0D65   pop      es
  1405. E527:0D66   pop      si
  1406. E527:0D67   ret      
  1407. E527:0D68   push     si
  1408. E527:0D69   push     word ptr ss:[00A6]
  1409. E527:0D6E   push     word ptr ss:[00A8]
  1410. E527:0D73   call     0ABA
  1411. E527:0D76   pop      word ptr ss:[00A8]
  1412. E527:0D7B   pop      word ptr ss:[00A6]
  1413. E527:0D80   pop      si
  1414. E527:0D81   ret      
  1415. E527:0D82   push     si
  1416. E527:0D83   call     0D4C
  1417. E527:0D86   mov      dl,al
  1418. E527:0D88   xor      cx,cx
  1419. E527:0D8A   lodsb
  1420. E527:0D8B   cmp      al,0D
  1421. E527:0D8D   je       0D96
  1422. E527:0D8F   cmp      al,dl
  1423. E527:0D91   je       0D96
  1424. E527:0D93   inc      cx
  1425. E527:0D94   jmp      0D8A
  1426. E527:0D96   pop      si
  1427. E527:0D97   ret      
  1428. E527:0D98   stosb
  1429. E527:0D99   cmp      byte ptr [si],0D
  1430. E527:0D9C   je       0DA7
  1431. E527:0D9E   test     word ptr [0105],2000
  1432. E527:0DA4   jne      0DA7
  1433. E527:0DA6   inc      si
  1434. E527:0DA7   cmp      al,20
  1435. E527:0DA9   jnb      0DB8
  1436. E527:0DAB   cmp      al,09
  1437. E527:0DAD   je       0DB8
  1438. E527:0DAF   push     ax
  1439. E527:0DB0   mov      dl,5E
  1440. E527:0DB2   call     0D68
  1441. E527:0DB5   pop      ax
  1442. E527:0DB6   add      al,40
  1443. E527:0DB8   mov      dl,al
  1444. E527:0DBA   call     0D68
  1445. E527:0DBD   ret      
  1446. E527:0DBE   push     cx
  1447. E527:0DBF   push     di
  1448. E527:0DC0   xor      cx,cx
  1449. E527:0DC2   mov      dx,di
  1450. E527:0DC4   cmp      di,bp
  1451. E527:0DC6   je       0DDD
  1452. E527:0DC8   dec      di
  1453. E527:0DC9   mov      al,es:[di]
  1454. E527:0DCC   cmp      al,09
  1455. E527:0DCE   je       0DD7
  1456. E527:0DD0   cmp      al,20
  1457. E527:0DD2   jnb      0DC4
  1458. E527:0DD4   inc      cx
  1459. E527:0DD5   jmp      0DC4
  1460. E527:0DD7   dec      dx
  1461. E527:0DD8   mov      ax,0008
  1462. E527:0DDB   jmp      0DED
  1463. E527:0DDD   push     bp
  1464. E527:0DDE   mov      bp,sp
  1465. E527:0DE0   mov      bp,[bp+08]
  1466. E527:0DE3   mov      ax,0008
  1467. E527:0DE6   and      bp,0007
  1468. E527:0DEA   sub      ax,bp
  1469. E527:0DEC   pop      bp
  1470. E527:0DED   sub      dx,di
  1471. E527:0DEF   and      dx,0007
  1472. E527:0DF3   add      cx,dx
  1473. E527:0DF5   sub      ax,cx
  1474. E527:0DF7   mov      cx,ax
  1475. E527:0DF9   mov      dl,08
  1476. E527:0DFB   call     0D68
  1477. E527:0DFE   loop     0DF9
  1478. E527:0E00   pop      di
  1479. E527:0E01   pop      cx
  1480. E527:0E02   ret      
  1481. E527:0E03   mov      dl,08
  1482. E527:0E05   call     0D68
  1483. E527:0E08   mov      dl,20
  1484. E527:0E0A   call     0D68
  1485. E527:0E0D   mov      dl,08
  1486. E527:0E0F   call     0D68
  1487. E527:0E12   ret      
  1488. Int21_Fn0B Check input status
  1489. E527:0E13   mov      bx,0000
  1490. E527:0E16   call     2E21
  1491. E527:0E19   jb       0E32
  1492. E527:0E1B   call     3E1B
  1493. E527:0E1E   jne      0E30
  1494. E527:0E20   call     0EA0
  1495. E527:0E23   je       0E2C
  1496. E527:0E25   pushf
  1497. E527:0E26   call     0F2D
  1498. E527:0E29   popf
  1499. E527:0E2A   jmp      0E30
  1500. E527:0E2C   mov      al,FF
  1501. E527:0E2E   jmp      0E32
  1502. E527:0E30   mov      al,00
  1503. E527:0E32   ret      
  1504. Int21_Fn0C Clear & input
  1505. E527:0E33   push     ax
  1506. E527:0E34   mov      bx,0000
  1507. E527:0E37   call     2E21
  1508. E527:0E3A   jb       0E66
  1509. E527:0E3C   call     1CF0
  1510. E527:0E3F   call     0F2D
  1511. E527:0E42   pop      ax
  1512. E527:0E43   cmp      al,01
  1513. E527:0E45   jne      0E4A
  1514. E527:0E47   jmp      0A86
  1515. E527:0E4A   cmp      al,06
  1516. E527:0E4C   jne      0E51
  1517. E527:0E4E   jmp      0AF1
  1518. E527:0E51   cmp      al,07
  1519. E527:0E53   jne      0E58
  1520. E527:0E55   jmp      0B24
  1521. E527:0E58   cmp      al,08
  1522. E527:0E5A   jne      0E5F
  1523. E527:0E5C   jmp      0B44
  1524. E527:0E5F   cmp      al,0A
  1525. E527:0E61   jne      0E67
  1526. E527:0E63   jmp      0BD0
  1527. E527:0E66   pop      ax
  1528. E527:0E67   ret      
  1529. E527:0E68   push     es
  1530. E527:0E69   mov      ax,ss
  1531. E527:0E6B   mov      ds,ax
  1532. E527:0E6D   mov      ax,[003A]
  1533. E527:0E70   mov      [009E],ax
  1534. E527:0E73   mov      ax,[003C]
  1535. E527:0E76   mov      [00A0],ax
  1536. E527:0E79   mov      ax,ds
  1537. E527:0E7B   mov      es,ax
  1538. E527:0E7D   mov      bx,0088
  1539. E527:0E80   mov      byte ptr [bx],0E
  1540. E527:0E83   mov      byte ptr [bx+02],05
  1541. E527:0E87   call     1C58
  1542. E527:0E8A   test     word ptr [bx+03],0200
  1543. E527:0E8F   jne      0E9E
  1544. E527:0E91   mov      al,[bx+0D]
  1545. E527:0E94   call     0EA0
  1546. E527:0E97   je       0E9E
  1547. E527:0E99   pushf
  1548. E527:0E9A   call     0F2D
  1549. E527:0E9D   popf
  1550. E527:0E9E   pop      es
  1551. E527:0E9F   ret      
  1552. E527:0EA0   push     ax
  1553. E527:0EA1   cmp      al,03
  1554. E527:0EA3   jne      0EA8
  1555. E527:0EA5   jmp      4119
  1556. E527:0EA8   test     word ptr ss:[0105],4000
  1557. E527:0EAF   je       0EBC
  1558. E527:0EB1   pushf
  1559. E527:0EB2   and      word ptr ss:[0105],BFFF
  1560. E527:0EB9   popf
  1561. E527:0EBA   jmp      0ECB
  1562. E527:0EBC   cmp      al,13
  1563. E527:0EBE   jne      0EC9
  1564. E527:0EC0   or       word ptr ss:[0105],4000
  1565. E527:0EC7   jmp      0ECB
  1566. E527:0EC9   xor      al,al
  1567. E527:0ECB   pop      ax
  1568. E527:0ECC   ret      
  1569. E527:0ECD   push     es
  1570. E527:0ECE   les      di,ss:[00A6]
  1571. E527:0ED3   cmp      byte ptr es:[di],0A
  1572. E527:0ED7   je       0F2B
  1573. E527:0ED9   cmp      byte ptr es:[di],09
  1574. E527:0EDD   jne      0F04
  1575. E527:0EDF   mov      ax,ds
  1576. E527:0EE1   mov      es,ax
  1577. E527:0EE3   mov      di,0052
  1578. E527:0EE6   mov      al,[0112]
  1579. E527:0EEA   and      al,07
  1580. E527:0EEC   mov      ah,08
  1581. E527:0EEE   sub      ah,al
  1582. E527:0EF0   mov      cl,ah
  1583. E527:0EF2   push     cx
  1584. E527:0EF3   push     di
  1585. E527:0EF4   mov      al,20
  1586. E527:0EF6   rep      stosb
  1587. E527:0EF8   pop      di
  1588. E527:0EF9   pop      cx
  1589. E527:0EFA   mov      ss:[00A6],di
  1590. E527:0EFF   mov      ss:[00A8],es
  1591. E527:0F04   cmp      byte ptr es:[di],08
  1592. E527:0F08   jne      0F1A
  1593. E527:0F0A   cmp      byte ptr ss:[0112],00
  1594. E527:0F10   je       0F1A
  1595. E527:0F12   dec      byte ptr ss:[0112]
  1596. E527:0F17   jmp      0F2B
  1597. E527:0F19   nop      
  1598. E527:0F1A   add      ss:[0112],cl
  1599. E527:0F1F   cmp      byte ptr es:[di],0D
  1600. E527:0F23   jne      0F2B
  1601. E527:0F25   mov      byte ptr ss:[0112],00
  1602. E527:0F2B   pop      es
  1603. E527:0F2C   ret      
  1604. E527:0F2D   mov      ax,ds
  1605. E527:0F2F   mov      es,ax
  1606. E527:0F31   mov      bx,0088
  1607. E527:0F34   mov      byte ptr [bx],0E
  1608. E527:0F37   mov      byte ptr [bx+02],07
  1609. E527:0F3B   call     1C58
  1610. E527:0F3E   ret      
  1611. E527:0F3F   mov      bx,0001
  1612. E527:0F42   test     word ptr ss:[0105],8000
  1613. E527:0F49   je       0F4E
  1614. E527:0F4B   mov      bx,0002
  1615. E527:0F4E   ret      
  1616. Int21_Fn38 Get/set country-dependent info
  1617. E527:0F4F   cmp      al,FF
  1618. E527:0F51   je       0F57
  1619. E527:0F53   xor      bh,bh
  1620. E527:0F55   mov      bl,al
  1621. E527:0F57   cmp      dx,FFFF
  1622. E527:0F5B   jne      0F71
  1623. E527:0F5D   push     bx
  1624. E527:0F5E   call     0F84
  1625. E527:0F61   pop      bx
  1626. E527:0F62   jne      0F6B
  1627. E527:0F64   mov      [0127],bx
  1628. E527:0F68   clc      
  1629. E527:0F69   jmp      0F83
  1630. E527:0F6B   mov      ax,0002
  1631. E527:0F6E   stc      
  1632. E527:0F6F   jmp      0F83
  1633. E527:0F71   cmp      bx,00
  1634. E527:0F74   jne      0F7A
  1635. E527:0F76   mov      bx,[0127]
  1636. E527:0F7A   call     0F84
  1637. E527:0F7D   jne      0F6B
  1638. E527:0F7F   call     1428
  1639. E527:0F82   clc      
  1640. E527:0F83   ret      
  1641. E527:0F84   mov      ax,cs
  1642. E527:0F86   mov      es,ax
  1643. E527:0F88   mov      di,0FD7
  1644. E527:0F8B   nop      
  1645. E527:0F8C   mov      cx,000E
  1646. E527:0F8F   nop      
  1647. E527:0F90   mov      ax,bx
  1648. E527:0F92   repne    scasw
  1649. E527:0F94   mov      bx,cx
  1650. E527:0F96   ret      
  1651. E527:0F97   cmp      al,80
  1652. E527:0F99   jb       0FAE
  1653. E527:0F9B   cmp      al,A7
  1654. E527:0F9D   ja       0FAE
  1655. E527:0F9F   sub      al,80
  1656. E527:0FA1   push     bx
  1657. E527:0FA2   push     ds
  1658. E527:0FA3   mov      bx,cs
  1659. E527:0FA5   mov      ds,bx
  1660. E527:0FA7   mov      bx,0FAF
  1661. E527:0FAA   nop      
  1662. E527:0FAB   xlatb    
  1663. E527:0FAC   pop      ds
  1664. E527:0FAD   pop      bx
  1665. E527:0FAE   retf     
  1666. E527:0FAF   sbb      byte ptr [bp+si+4145],8E
  1667. E527:0FB4   inc      cx
  1668. E527:0FB5   pop      word ptr [bx+si+4545]
  1669. E527:0FB9   inc      bp
  1670. E527:0FBA   dec      cx
  1671. E527:0FBB   dec      cx
  1672. E527:0FBC   dec      cx
  1673. E527:0FBD   mov      cs,[bx+9290]
  1674. E527:0FC1   xchg     ax,dx
  1675. E527:0FC2   dec      di
  1676. E527:0FC3   cwd
  1677. E527:0FC4   dec      di
  1678. E527:0FC5   push     bp
  1679. E527:0FC6   push     bp
  1680. E527:0FC7   pop      cx
  1681. E527:0FC8   cwd
  1682. E527:0FC9   call     9E9D:9C9B
  1683. E527:0FCE   lahf
  1684. E527:0FCF   inc      cx
  1685. E527:0FD0   dec      cx
  1686. E527:0FD1   dec      di
  1687. E527:0FD2   push     bp
  1688. E527:0FD3   movsw
  1689. E527:0FD4   movsw
  1690. E527:0FD5   cmpsb
  1691. E527:0FD6   cmpsw
  1692. E527:0FD7   cmp      ax,2000
  1693. E527:0FDA   add      [di],ch
  1694. E527:0FDC   add      [bp+01],ah
  1695. E527:0FDF   and      [bx+si],ax
  1696. E527:0FE1   xor      [bx+si],ax
  1697. E527:0FE3   daa
  1698. E527:0FE4   add      [bx],bl
  1699. E527:0FE6   add      [bx],ch
  1700. E527:0FE8   add      [bp+si],ah
  1701. E527:0FEA   add      [2900],ch
  1702. E527:0FEE   add      [si],ch
  1703. E527:0FF0   add      [bx+di],al
  1704. E527:0FF2   add      al,ch
  1705. Int21_Fn2A Get date
  1706. E527:0FF3   call     11A6
  1707. E527:0FF6   mov      ax,es:[di]
  1708. E527:0FF9   push     ax
  1709. E527:0FFA   mov      cx,05B5
  1710. E527:0FFD   xor      dx,dx
  1711. E527:0FFF   shl      ax,1
  1712. E527:1001   rcl      dx,1
  1713. E527:1003   shl      ax,1
  1714. E527:1005   rcl      dx,1
  1715. E527:1007   div      cx
  1716. E527:1009   shr      dx,1
  1717. E527:100B   shr      dx,1
  1718. E527:100D   mov      bl,al
  1719. E527:100F   xor      bh,bh
  1720. E527:1011   add      bx,07BC
  1721. E527:1015   inc      dx
  1722. E527:1016   mov      ax,dx
  1723. E527:1018   test     bl,03
  1724. E527:101B   jne      1029
  1725. E527:101D   cmp      dx,3C
  1726. E527:1020   jb       1029
  1727. E527:1022   ja       1027
  1728. E527:1024   dec      ax
  1729. E527:1025   jmp      1029
  1730. E527:1027   dec      ax
  1731. E527:1028   dec      dx
  1732. E527:1029   push     cs
  1733. E527:102A   pop      es
  1734. E527:102B   mov      di,1200
  1735. E527:102E   nop      
  1736. E527:102F   mov      cx,000C
  1737. E527:1032   nop      
  1738. E527:1033   scasw
  1739. E527:1034   ja       1038
  1740. E527:1036   loop     1033
  1741. E527:1038   dec      di
  1742. E527:1039   dec      di
  1743. E527:103A   sub      dx,es:[di]
  1744. E527:103D   mov      ax,dx
  1745. E527:103F   pop      dx
  1746. E527:1040   push     ax
  1747. E527:1041   push     cx
  1748. E527:1042   mov      ax,dx
  1749. E527:1044   xor      dx,dx
  1750. E527:1046   mov      cx,0007
  1751. E527:1049   div      cx
  1752. E527:104B   add      dx,02
  1753. E527:104E   cmp      dx,07
  1754. E527:1051   jb       1056
  1755. E527:1053   sub      dx,07
  1756. E527:1056   pop      cx
  1757. E527:1057   pop      ax
  1758. E527:1058   lds      si,ss:[00AB]
  1759. E527:105D   mov      [si+04],bx
  1760. E527:1060   mov      bh,cl
  1761. E527:1062   mov      bl,al
  1762. E527:1064   mov      [si+06],bx
  1763. E527:1067   mov      al,dl
  1764. E527:1069   ret      
  1765. Int21_Fn2B Set date
  1766. E527:106A   cmp      cx,07BC
  1767. E527:106E   jb       10EA
  1768. E527:1070   cmp      cx,0833
  1769. E527:1074   ja       10EA
  1770. E527:1076   cmp      dh,0C
  1771. E527:1079   ja       10EA
  1772. E527:107B   cmp      dh,00
  1773. E527:107E   je       10EA
  1774. E527:1080   cmp      dl,00
  1775. E527:1083   je       10EA
  1776. E527:1085   mov      bl,dh
  1777. E527:1087   xor      bh,bh
  1778. E527:1089   dec      bl
  1779. E527:108B   push     cs
  1780. E527:108C   pop      es
  1781. E527:108D   mov      si,1218
  1782. E527:1090   nop      
  1783. E527:1091   mov      al,cs:[bx+si]
  1784. E527:1094   test     cx,0003
  1785. E527:1098   jne      10A1
  1786. E527:109A   cmp      dh,02
  1787. E527:109D   jne      10A1
  1788. E527:109F   inc      al
  1789. E527:10A1   cmp      dl,al
  1790. E527:10A3   ja       10EA
  1791. E527:10A5   push     dx
  1792. E527:10A6   sub      cx,07BC
  1793. E527:10AA   mov      ax,05B5
  1794. E527:10AD   mul      cx
  1795. E527:10AF   rcr      dx,1
  1796. E527:10B1   rcr      ax,1
  1797. E527:10B3   rcr      dx,1
  1798. E527:10B5   rcr      ax,1
  1799. E527:10B7   pop      dx
  1800. E527:10B8   test     cx,0003
  1801. E527:10BC   jne      10C3
  1802. E527:10BE   cmp      dh,02
  1803. E527:10C1   jbe      10C5
  1804. E527:10C3   inc      dl
  1805. E527:10C5   mov      bl,dh
  1806. E527:10C7   sub      bl,0C
  1807. E527:10CA   nop      
  1808. E527:10CB   neg      bl
  1809. E527:10CD   xor      bh,bh
  1810. E527:10CF   shl      bl,1
  1811. E527:10D1   mov      si,1200
  1812. E527:10D4   nop      
  1813. E527:10D5   add      ax,es:[bx+si]
  1814. E527:10D8   xor      dh,dh
  1815. E527:10DA   add      ax,dx
  1816. E527:10DC   dec      ax
  1817. E527:10DD   call     11A6
  1818. E527:10E0   mov      es:[di],ax
  1819. E527:10E3   call     11C2
  1820. E527:10E6   xor      al,al
  1821. E527:10E8   jmp      10EC
  1822. E527:10EA   mov      al,FF
  1823. E527:10EC   ret      
  1824. Int21_Fn2C Get time
  1825. E527:10ED   call     11A6
  1826. E527:10F0   mov      ch,es:[di+03]
  1827. E527:10F4   mov      cl,es:[di+02]
  1828. E527:10F8   mov      dh,es:[di+05]
  1829. E527:10FC   mov      dl,es:[di+04]
  1830. E527:1100   lds      si,[00AB]
  1831. E527:1104   mov      [si+04],cx
  1832. E527:1107   mov      [si+06],dx
  1833. E527:110A   ret      
  1834. Int21_Fn2D Set time
  1835. E527:110B   cmp      ch,17
  1836. E527:110E   ja       1134
  1837. E527:1110   cmp      cl,3B
  1838. E527:1113   ja       1134
  1839. E527:1115   cmp      dh,3B
  1840. E527:1118   ja       1134
  1841. E527:111A   call     11A6
  1842. E527:111D   mov      es:[di+03],ch
  1843. E527:1121   mov      es:[di+02],cl
  1844. E527:1125   mov      es:[di+05],dh
  1845. E527:1129   mov      es:[di+04],dl
  1846. E527:112D   call     11C2
  1847. E527:1130   xor      al,al
  1848. E527:1132   jmp      1136
  1849. E527:1134   mov      al,FF
  1850. E527:1136   ret      
  1851. E527:1137   push     bx
  1852. E527:1138   push     cx
  1853. E527:1139   push     dx
  1854. E527:113A   push     di
  1855. E527:113B   push     es
  1856. E527:113C   lds      si,ss:[00AB]
  1857. E527:1141   push     word ptr [si+04]
  1858. E527:1144   push     word ptr [si+06]
  1859. E527:1147   call     0FF3
  1860. E527:114A   mov      cx,[si+04]
  1861. E527:114D   mov      dx,[si+06]
  1862. E527:1150   pop      word ptr [si+06]
  1863. E527:1153   pop      word ptr [si+04]
  1864. E527:1156   xor      ax,ax
  1865. E527:1158   xor      bh,bh
  1866. E527:115A   sub      cx,07BC
  1867. E527:115E   or       ax,cx
  1868. E527:1160   mov      cl,04
  1869. E527:1162   shl      ax,cl
  1870. E527:1164   mov      bl,dh
  1871. E527:1166   or       ax,bx
  1872. E527:1168   mov      cl,05
  1873. E527:116A   shl      ax,cl
  1874. E527:116C   mov      bl,dl
  1875. E527:116E   or       ax,bx
  1876. E527:1170   pop      es
  1877. E527:1171   pop      di
  1878. E527:1172   pop      dx
  1879. E527:1173   pop      cx
  1880. E527:1174   pop      bx
  1881. E527:1175   ret      
  1882. E527:1176   push     bx
  1883. E527:1177   push     cx
  1884. E527:1178   push     dx
  1885. E527:1179   push     di
  1886. E527:117A   push     es
  1887. E527:117B   call     11A6
  1888. E527:117E   xor      ax,ax
  1889. E527:1180   xor      bh,bh
  1890. E527:1182   mov      bl,es:[di+03]
  1891. E527:1186   or       ax,bx
  1892. E527:1188   mov      cl,06
  1893. E527:118A   shl      ax,cl
  1894. E527:118C   mov      bl,es:[di+02]
  1895. E527:1190   or       ax,bx
  1896. E527:1192   mov      cl,05
  1897. E527:1194   shl      ax,cl
  1898. E527:1196   mov      dl,es:[di+05]
  1899. E527:119A   xor      dh,dh
  1900. E527:119C   shr      dx,1
  1901. E527:119E   or       ax,dx
  1902. E527:11A0   pop      es
  1903. E527:11A1   pop      di
  1904. E527:11A2   pop      dx
  1905. E527:11A3   pop      cx
  1906. E527:11A4   pop      bx
  1907. E527:11A5   ret      
  1908. E527:11A6   push     ax
  1909. E527:11A7   call     11DC
  1910. E527:11AA   mov      byte ptr es:[bx+02],04
  1911. E527:11AF   mov      word ptr es:[bx+0E],0052
  1912. E527:11B5   mov      es:[bx+10],ss
  1913. E527:11B9   call     1C58
  1914. E527:11BC   les      di,es:[bx+0E]
  1915. E527:11C0   pop      ax
  1916. E527:11C1   ret      
  1917. E527:11C2   push     dx
  1918. E527:11C3   mov      dx,es
  1919. E527:11C5   call     11DC
  1920. E527:11C8   mov      byte ptr es:[bx+02],08
  1921. E527:11CD   mov      es:[bx+0E],di
  1922. E527:11D1   mov      es:[bx+10],dx
  1923. E527:11D5   call     1C58
  1924. E527:11D8   mov      es,dx
  1925. E527:11DA   pop      dx
  1926. E527:11DB   ret      
  1927. E527:11DC   push     ax
  1928. E527:11DD   mov      ax,[0014]
  1929. E527:11E1   mov      [009E],ax
  1930. E527:11E5   mov      ax,[0016]
  1931. E527:11E9   mov      [00A0],ax
  1932. E527:11ED   mov      ax,ss
  1933. E527:11EF   mov      es,ax
  1934. E527:11F1   mov      bx,0088
  1935. E527:11F4   mov      byte ptr es:[bx],14
  1936. E527:11F8   mov      word ptr es:[bx+12],0006
  1937. E527:11FE   pop      ax
  1938. E527:11FF   ret      
  1939. E527:1200   dec      si
  1940. E527:1201   add      [bx+si],si
  1941. E527:1203   add      [bx+di],dx
  1942. E527:1205   add      bx,si
  1943. E527:1207   add      ah,dl
  1944. E527:1209   add      [di+9700],dh
  1945. E527:120D   add      [bx+si+00],bh
  1946. E527:1210   pop      dx
  1947. E527:1211   add      [bp+di],bh
  1948. E527:1213   add      [bx],bl
  1949. E527:1215   add      [bx+si],al
  1950. E527:1217   add      [bx],bl
  1951. E527:1219   sbb      al,1F
  1952. E527:121B   push     ds
  1953. E527:121C   pop      ds
  1954. E527:121D   push     ds
  1955. E527:121E   pop      ds
  1956. E527:121F   pop      ds
  1957. E527:1220   push     ds
  1958. E527:1221   pop      ds
  1959. E527:1222   push     ds
  1960. E527:1223   pop      ds
  1961. E527:1224   mov      al,[012B]
  1962. E527:1228   dec      al
  1963. E527:122A   je       122F
  1964. E527:122C   call     07AC
  1965. E527:122F   ret      
  1966. E527:1230   add      [bx+si],al
  1967. E527:1232   and      al,00
  1968. E527:1234   add      [bx+si],al
  1969. E527:1236   add      [si],ch
  1970. E527:1238   add      [2D00],ch
  1971. E527:123C   add      [bp+si],bh
  1972. E527:123E   add      [bx+si],al
  1973. E527:1240   add      al,[bx+si]
  1974. E527:1242   xchg     ax,di
  1975. E527:1243   db       0F
  1976. E527:1244   daa      
  1977. E527:1245   in       ax,2C
  1978. E527:1247   add      [bx+si],al
  1979. E527:1249   add      [bx+si],al
  1980. E527:124B   add      [bx+si],al
  1981. E527:124D   add      [bx+si],al
  1982. E527:124F   add      [bx+si],al
  1983. E527:1251   add      [bx+di],al
  1984. E527:1253   add      [si],bl
  1985. E527:1255   add      [bx+si],al
  1986. E527:1257   add      [bx+si],al
  1987. E527:1259   sub      al,00
  1988. E527:125B   add      cs:[di],ch
  1989. E527:125E   add      [bp+si],bh
  1990. E527:1260   add      [bx+si],al
  1991. E527:1262   add      al,[bx+di]
  1992. E527:1264   xchg     ax,di
  1993. E527:1265   db       0F
  1994. E527:1266   daa      
  1995. E527:1267   in       ax,2C
  1996. E527:1269   add      [bx+si],al
  1997. E527:126B   add      [bx+si],al
  1998. E527:126D   add      [bx+si],al
  1999. E527:126F   add      [bx+si],al
  2000. E527:1271   add      [bx+si],al
  2001. E527:1273   add      [bx+di],al
  2002. E527:1275   add      [bp+72],al
  2003. E527:1278   add      [bx+si],al
  2004. E527:127A   add      [si],ch
  2005. E527:127C   add      [2E00],ch
  2006. E527:1280   add      [0200],ch
  2007. E527:1284   add      al,[bx+di]
  2008. E527:1286   xchg     ax,di
  2009. E527:1287   db       0F
  2010. E527:1288   daa      
  2011. E527:1289   in       ax,2C
  2012. E527:128B   add      [bx+si],al
  2013. E527:128D   add      [bx+si],al
  2014. E527:128F   add      [bx+si],al
  2015. E527:1291   add      [bx+si],al
  2016. E527:1293   add      [bx+si],al
  2017. E527:1295   add      [bp+si],al
  2018. E527:1297   add      [bp+di+45],dl
  2019. E527:129A   dec      bx
  2020. E527:129B   add      [bx+si],al
  2021. E527:129D   add      cs:[si],ch
  2022. E527:12A0   add      [di],ch
  2023. E527:12A2   add      [0200],ch
  2024. E527:12A6   add      al,[bx+di]
  2025. E527:12A8   xchg     ax,di
  2026. E527:12A9   db       0F
  2027. E527:12AA   daa      
  2028. E527:12AB   in       ax,3B
  2029. E527:12AD   add      [bx+si],al
  2030. E527:12AF   add      [bx+si],al
  2031. E527:12B1   add      [bx+si],al
  2032. E527:12B3   add      [bx+si],al
  2033. E527:12B5   add      [bx+si],al
  2034. E527:12B7   add      [bx+di],al
  2035. E527:12B9   add      [bx+si+74],dl
  2036. E527:12BC   add      [bx+si],al
  2037. E527:12BE   add      [2C00],ch
  2038. E527:12C2   add      [bx],ch
  2039. E527:12C4   add      [bp+si],bh
  2040. E527:12C6   add      [bp+di],al
  2041. E527:12C8   add      al,[bx+di]
  2042. E527:12CA   xchg     ax,di
  2043. E527:12CB   db       0F
  2044. E527:12CC   daa      
  2045. E527:12CD   in       ax,3B
  2046. E527:12CF   add      [bx+si],al
  2047. E527:12D1   add      [bx+si],al
  2048. E527:12D3   add      [bx+si],al
  2049. E527:12D5   add      [bx+si],al
  2050. E527:12D7   add      [bx+si],al
  2051. E527:12D9   add      [bx+di],al
  2052. E527:12DB   add      [bp+di+72],cl
  2053. E527:12DE   add      [bx+si],al
  2054. E527:12E0   add      [2C00],ch
  2055. E527:12E4   add      [bx],ch
  2056. E527:12E6   add      [0200],ch
  2057. E527:12EA   add      al,[bx+di]
  2058. E527:12EC   xchg     ax,di
  2059. E527:12ED   db       0F
  2060. E527:12EE   daa      
  2061. E527:12EF   in       ax,3B
  2062. E527:12F1   add      [bx+si],al
  2063. E527:12F3   add      [bx+si],al
  2064. E527:12F5   add      [bx+si],al
  2065. E527:12F7   add      [bx+si],al
  2066. E527:12F9   add      [bx+si],al
  2067. E527:12FB   add      [bx+di],al
  2068. E527:12FD   add      [bx],bl
  2069. E527:12FF   add      [bx+si],al
  2070. E527:1301   add      [bx+si],al
  2071. E527:1303   add      cs:[si],ch
  2072. E527:1306   add      [di],ch
  2073. E527:1308   add      [bp+si],bh
  2074. E527:130A   add      [bx+si],al
  2075. E527:130C   add      al,[bx+di]
  2076. E527:130E   xchg     ax,di
  2077. E527:130F   db       0F
  2078. E527:1310   daa      
  2079. E527:1311   in       ax,3B
  2080. E527:1313   add      [bx+si],al
  2081. E527:1315   add      [bx+si],al
  2082. E527:1317   add      [bx+si],al
  2083. E527:1319   add      [bx+si],al
  2084. E527:131B   add      [bx+si],al
  2085. E527:131D   add      [bx+di],al
  2086. E527:131F   add      [si+69],cl
  2087. E527:1322   je       1352
  2088. E527:1324   add      [2C00],ch
  2089. E527:1328   add      [bx],ch
  2090. E527:132A   add      [bp+si],bh
  2091. E527:132C   add      [bx+di],al
  2092. E527:132E   add      [bx+di],al
  2093. E527:1330   xchg     ax,di
  2094. E527:1331   db       0F
  2095. E527:1332   daa      
  2096. E527:1333   in       ax,3B
  2097. E527:1335   add      [bx+si],al
  2098. E527:1337   add      [bx+si],al
  2099. E527:1339   add      [bx+si],al
  2100. E527:133B   add      [bx+si],al
  2101. E527:133D   add      [bx+si],al
  2102. E527:133F   add      [bx+di],al
  2103. E527:1341   add      [si+4D],al
  2104. E527:1344   add      [bx+si],al
  2105. E527:1346   add      [2C00],ch
  2106. E527:134A   add      [2E00],ch
  2107. E527:134E   add      [bx+si],al
  2108. E527:1350   add      al,[bx+di]
  2109. E527:1352   xchg     ax,di
  2110. E527:1353   db       0F
  2111. E527:1354   daa      
  2112. E527:1355   in       ax,3B
  2113. E527:1357   add      [bx+si],al
  2114. E527:1359   add      [bx+si],al
  2115. E527:135B   add      [bx+si],al
  2116. E527:135D   add      [bx+si],al
  2117. E527:135F   add      [bx+si],al
  2118. E527:1361   add      [bx+di],al
  2119. E527:1363   add      [bp+00],al
  2120. E527:1366   add      [bx+si],al
  2121. E527:1368   add      [bx+si],ah
  2122. E527:136A   add      [si],ch
  2123. E527:136C   add      [bx],ch
  2124. E527:136E   add      [bp+si],bh
  2125. E527:1370   add      [bp+di],al
  2126. E527:1372   add      al,[bx+di]
  2127. E527:1374   xchg     ax,di
  2128. E527:1375   db       0F
  2129. E527:1376   daa      
  2130. E527:1377   in       ax,3B
  2131. E527:1379   add      [bx+si],al
  2132. E527:137B   add      [bx+si],al
  2133. E527:137D   add      [bx+si],al
  2134. E527:137F   add      [bx+si],al
  2135. E527:1381   add      [bx+si],al
  2136. E527:1383   add      [bx+di],al
  2137. E527:1385   add      [di+6B],ch
  2138. E527:1388   add      [bx+si],al
  2139. E527:138A   add      [bx+si],ah
  2140. E527:138C   add      [si],ch
  2141. E527:138E   add      [di],ch
  2142. E527:1390   add      [bp+si],bh
  2143. E527:1392   add      [bp+di],al
  2144. E527:1394   add      al,[bx+di]
  2145. E527:1396   xchg     ax,di
  2146. E527:1397   db       0F
  2147. E527:1398   daa      
  2148. E527:1399   in       ax,3B
  2149. E527:139B   add      [bx+si],al
  2150. E527:139D   add      [bx+si],al
  2151. E527:139F   add      [bx+si],al
  2152. E527:13A1   add      [bx+si],al
  2153. E527:13A3   add      [bx+si],al
  2154. E527:13A5   add      [bx+di],al
  2155. E527:13A7   add      [si+4B],al
  2156. E527:13AA   jb       13AC
  2157. E527:13AC   add      [2C00],ch
  2158. E527:13B0   add      [bx],ch
  2159. E527:13B2   add      [0300],ch
  2160. E527:13B6   add      al,[bx+di]
  2161. E527:13B8   xchg     ax,di
  2162. E527:13B9   db       0F
  2163. E527:13BA   daa      
  2164. E527:13BB   in       ax,3B
  2165. E527:13BD   add      [bx+si],al
  2166. E527:13BF   add      [bx+si],al
  2167. E527:13C1   add      [bx+si],al
  2168. E527:13C3   add      [bx+si],al
  2169. E527:13C5   add      [bx+si],al
  2170. E527:13C7   add      [bx+di],al
  2171. E527:13C9   add      [bp+00],al
  2172. E527:13CC   add      [bx+si],al
  2173. E527:13CE   add      [bx+si],ah
  2174. E527:13D0   add      [si],ch
  2175. E527:13D2   add      [bx],ch
  2176. E527:13D4   add      [bp+si],bh
  2177. E527:13D6   add      [bp+di],al
  2178. E527:13D8   add      al,[bx+di]
  2179. E527:13DA   xchg     ax,di
  2180. E527:13DB   db       0F
  2181. E527:13DC   daa      
  2182. E527:13DD   in       ax,3B
  2183. E527:13DF   add      [bx+si],al
  2184. E527:13E1   add      [bx+si],al
  2185. E527:13E3   add      [bx+si],al
  2186. E527:13E5   add      [bx+si],al
  2187. E527:13E7   add      [bx+si],al
  2188. E527:13E9   add      [bx+di],al
  2189. E527:13EB   add      [si],ah
  2190. E527:13ED   add      [bx+si],al
  2191. E527:13EF   add      [bx+si],al
  2192. E527:13F1   sub      al,00
  2193. E527:13F3   add      cs:[di],ch
  2194. E527:13F6   add      [bp+si],bh
  2195. E527:13F8   add      [bx+si],al
  2196. E527:13FA   add      al,[bx+di]
  2197. E527:13FC   xchg     ax,di
  2198. E527:13FD   db       0F
  2199. E527:13FE   daa      
  2200. E527:13FF   in       ax,2C
  2201. E527:1401   add      [bx+si],al
  2202. E527:1403   add      [bx+si],al
  2203. E527:1405   add      [bx+si],al
  2204. E527:1407   add      [bx+si],al
  2205. E527:1409   add      [bx+si],al
  2206. E527:140B   add      [bx+si],dh
  2207. E527:140D   adc      dl,[bp+si+12]
  2208. E527:1410   je       1424
  2209. E527:1412   xchg     ax,si
  2210. E527:1413   adc      bh,[bx+si+DA12]
  2211. E527:1417   adc      bh,ah
  2212. E527:1419   adc      bl,[4013]
  2213. E527:141D   adc      sp,[bp+si+13]
  2214. E527:1420   test     [bp+di],dl
  2215. E527:1422   cmpsb
  2216. E527:1423   adc      cx,ax
  2217. E527:1425   adc      bp,dx
  2218. E527:1427   adc      dx,cx
  2219. E527:1429   jcxz     13AC
  2220. E527:142B   ret      
  2221. E527:142C   or       al,14
  2222. E527:142E   mov      si,cs:[bx]
  2223. E527:1431   les      di,[00A6]
  2224. E527:1435   mov      cx,cs
  2225. E527:1437   mov      ds,cx
  2226. E527:1439   mov      cx,0022
  2227. E527:143C   rep      movsb
  2228. E527:143E   ret      
  2229. E527:143F   push     cx
  2230. E527:1440   mov      ax,es:[di]
  2231. E527:1443   mov      [bx+02],ax
  2232. E527:1446   mov      al,es:[di+02]
  2233. E527:144A   dec      al
  2234. E527:144C   mov      [bx+04],al
  2235. E527:144F   mov      ax,es:[di+03]
  2236. E527:1453   mov      [bx+06],ax
  2237. E527:1456   mov      al,es:[di+05]
  2238. E527:145A   mov      [bx+08],al
  2239. E527:145D   mov      dx,es:[di+0B]
  2240. E527:1461   mov      [bx+0F],dl
  2241. E527:1464   mul      dx
  2242. E527:1466   add      ax,es:[di+03]
  2243. E527:146A   mov      [bx+10],ax
  2244. E527:146D   mov      ax,es:[di+06]
  2245. E527:1471   mov      [bx+09],ax
  2246. E527:1474   mov      dx,0020
  2247. E527:1477   mul      dx
  2248. E527:1479   div      word ptr es:[di]
  2249. E527:147C   or       dx,dx
  2250. E527:147E   je       1481
  2251. E527:1480   inc      ax
  2252. E527:1481   add      ax,[bx+10]
  2253. E527:1484   mov      [bx+0B],ax
  2254. E527:1487   mov      ax,es:[di+08]
  2255. E527:148B   sub      ax,[bx+0B]
  2256. E527:148E   xor      ch,ch
  2257. E527:1490   xor      dx,dx
  2258. E527:1492   mov      cl,es:[di+02]
  2259. E527:1496   div      cx
  2260. E527:1498   add      ax,0001
  2261. E527:149B   mov      [bx+0D],ax
  2262. E527:149E   mov      al,es:[di+0A]
  2263. E527:14A2   mov      [bx+16],al
  2264. E527:14A5   pop      cx
  2265. E527:14A6   ret      
  2266. E527:14A7   cmp      al,ss:[0028]
  2267. E527:14AC   jnb      14C4
  2268. E527:14AE   les      di,ss:[000C]
  2269. E527:14B3   cmp      di,FFFF
  2270. E527:14B7   je       14C4
  2271. E527:14B9   cmp      al,es:[di]
  2272. E527:14BC   je       14CA
  2273. E527:14BE   les      di,es:[di+18]
  2274. E527:14C2   jmp      14B3
  2275. E527:14C4   mov      ax,000F
  2276. E527:14C7   stc      
  2277. E527:14C8   jmp      14CA
  2278. E527:14CA   ret      
  2279. E527:14CB   push     cx
  2280. E527:14CC   push     di
  2281. E527:14CD   push     es
  2282. E527:14CE   push     cx
  2283. E527:14CF   push     dx
  2284. E527:14D0   call     155C
  2285. E527:14D3   jb       14E3
  2286. E527:14D5   push     bx
  2287. E527:14D6   mov      bx,di
  2288. E527:14D8   call     4345
  2289. E527:14DB   mov      di,bx
  2290. E527:14DD   pop      bx
  2291. E527:14DE   call     0802
  2292. E527:14E1   mov      ax,cx
  2293. E527:14E3   pop      dx
  2294. E527:14E4   pop      cx
  2295. E527:14E5   jb       150A
  2296. E527:14E7   xor      bx,bx
  2297. E527:14E9   sub      cx,ax
  2298. E527:14EB   je       14FF
  2299. E527:14ED   call     15BE
  2300. E527:14F0   jb       150A
  2301. E527:14F2   inc      word ptr ss:[010D]
  2302. E527:14F7   mov      dx,ax
  2303. E527:14F9   cmp      dx,0FF8
  2304. E527:14FD   jb       14CE
  2305. E527:14FF   mov      ss:[010B],dx
  2306. E527:1504   pop      es
  2307. E527:1505   pop      di
  2308. E527:1506   pop      ax
  2309. E527:1507   sub      ax,cx
  2310. E527:1509   ret      
  2311. E527:150A   pop      es
  2312. E527:150B   pop      di
  2313. E527:150C   pop      cx
  2314. E527:150D   ret      
  2315. E527:150E   push     cx
  2316. E527:150F   push     di
  2317. E527:1510   push     es
  2318. E527:1511   mov      ax,dx
  2319. E527:1513   mov      dx,ax
  2320. E527:1515   push     cx
  2321. E527:1516   push     dx
  2322. E527:1517   call     155C
  2323. E527:151A   jb       152A
  2324. E527:151C   push     bx
  2325. E527:151D   mov      bx,di
  2326. E527:151F   call     4345
  2327. E527:1522   mov      di,bx
  2328. E527:1524   pop      bx
  2329. E527:1525   call     082D
  2330. E527:1528   mov      ax,cx
  2331. E527:152A   pop      dx
  2332. E527:152B   pop      cx
  2333. E527:152C   jb       1558
  2334. E527:152E   xor      bx,bx
  2335. E527:1530   sub      cx,ax
  2336. E527:1532   je       154D
  2337. E527:1534   call     15BE
  2338. E527:1537   jb       1558
  2339. E527:1539   cmp      ax,0FF8
  2340. E527:153C   jb       1513
  2341. E527:153E   call     166B
  2342. E527:1541   jb       154D
  2343. E527:1543   call     1605
  2344. E527:1546   inc      word ptr ss:[010D]
  2345. E527:154B   jmp      1513
  2346. E527:154D   mov      ss:[010B],dx
  2347. E527:1552   pop      es
  2348. E527:1553   pop      di
  2349. E527:1554   pop      ax
  2350. E527:1555   sub      ax,cx
  2351. E527:1557   ret      
  2352. E527:1558   pop      es
  2353. E527:1559   pop      di
  2354. E527:155A   pop      cx
  2355. E527:155B   ret      
  2356. E527:155C   cmp      dx,00
  2357. E527:155F   jne      1568
  2358. E527:1561   add      dx,[si+10]
  2359. E527:1564   push     dx
  2360. E527:1565   jmp      1598
  2361. E527:1567   nop      
  2362. E527:1568   cmp      dx,[si+0D]
  2363. E527:156B   jbe      1571
  2364. E527:156D   stc      
  2365. E527:156E   jmp      15A4
  2366. E527:1570   nop      
  2367. E527:1571   sub      dx,02
  2368. E527:1574   xor      ah,ah
  2369. E527:1576   mov      al,[si+04]
  2370. E527:1579   inc      ax
  2371. E527:157A   mul      dx
  2372. E527:157C   mov      dx,ax
  2373. E527:157E   add      dx,[si+0B]
  2374. E527:1581   push     dx
  2375. E527:1582   mov      al,[si+04]
  2376. E527:1585   inc      al
  2377. E527:1587   xor      ah,ah
  2378. E527:1589   mul      word ptr [si+02]
  2379. E527:158C   mov      dx,bx
  2380. E527:158E   add      dx,cx
  2381. E527:1590   cmp      dx,ax
  2382. E527:1592   jbe      1598
  2383. E527:1594   mov      cx,ax
  2384. E527:1596   sub      cx,bx
  2385. E527:1598   xor      dx,dx
  2386. E527:159A   mov      ax,bx
  2387. E527:159C   div      word ptr [si+02]
  2388. E527:159F   mov      bx,dx
  2389. E527:15A1   pop      dx
  2390. E527:15A2   add      dx,ax
  2391. E527:15A4   ret      
  2392. E527:15A5   lds      si,ss:[003E]
  2393. E527:15AA   mov      dx,0001
  2394. E527:15AD   xor      bx,bx
  2395. E527:15AF   inc      dx
  2396. E527:15B0   call     15BE
  2397. E527:15B3   jb       15BD
  2398. E527:15B5   cmp      ax,0000
  2399. E527:15B8   jne      15AF
  2400. E527:15BA   inc      bx
  2401. E527:15BB   jmp      15AF
  2402. E527:15BD   ret      
  2403. E527:15BE   push     bx
  2404. E527:15BF   push     cx
  2405. E527:15C0   push     dx
  2406. E527:15C1   push     di
  2407. E527:15C2   push     es
  2408. E527:15C3   cmp      dx,[si+0D]
  2409. E527:15C6   ja       15FE
  2410. E527:15C8   mov      ax,0003
  2411. E527:15CB   mul      dx
  2412. E527:15CD   shr      dx,1
  2413. E527:15CF   rcr      ax,1
  2414. E527:15D1   pushf
  2415. E527:15D2   xor      dx,dx
  2416. E527:15D4   div      word ptr [si+02]
  2417. E527:15D7   mov      bx,dx
  2418. E527:15D9   mov      dx,ax
  2419. E527:15DB   add      dx,[si+06]
  2420. E527:15DE   mov      cx,0002
  2421. E527:15E1   mov      ax,ss
  2422. E527:15E3   mov      es,ax
  2423. E527:15E5   mov      di,0107
  2424. E527:15E8   call     0802
  2425. E527:15EB   mov      ax,[0107]
  2426. E527:15EF   popf
  2427. E527:15F0   jnb      15FA
  2428. E527:15F2   shr      ax,1
  2429. E527:15F4   shr      ax,1
  2430. E527:15F6   shr      ax,1
  2431. E527:15F8   shr      ax,1
  2432. E527:15FA   and      ax,0FFF
  2433. E527:15FD   stc      
  2434. E527:15FE   cmc      
  2435. E527:15FF   pop      es
  2436. E527:1600   pop      di
  2437. E527:1601   pop      dx
  2438. E527:1602   pop      cx
  2439. E527:1603   pop      bx
  2440. E527:1604   ret      
  2441. E527:1605   push     ax
  2442. E527:1606   push     bx
  2443. E527:1607   push     cx
  2444. E527:1608   push     dx
  2445. E527:1609   push     di
  2446. E527:160A   push     es
  2447. E527:160B   cmp      dx,[si+0D]
  2448. E527:160E   ja       1663
  2449. E527:1610   push     ax
  2450. E527:1611   mov      ax,0003
  2451. E527:1614   mul      dx
  2452. E527:1616   shr      dx,1
  2453. E527:1618   rcr      ax,1
  2454. E527:161A   pushf
  2455. E527:161B   xor      dx,dx
  2456. E527:161D   div      word ptr [si+02]
  2457. E527:1620   mov      bx,dx
  2458. E527:1622   mov      dx,ax
  2459. E527:1624   add      dx,[si+06]
  2460. E527:1627   mov      cx,0002
  2461. E527:162A   mov      ax,ss
  2462. E527:162C   mov      es,ax
  2463. E527:162E   mov      di,0107
  2464. E527:1631   push     bx
  2465. E527:1632   push     dx
  2466. E527:1633   call     0802
  2467. E527:1636   pop      dx
  2468. E527:1637   pop      bx
  2469. E527:1638   popf
  2470. E527:1639   pop      ax
  2471. E527:163A   push     dx
  2472. E527:163B   mov      dx,ss:[0107]
  2473. E527:1640   jnb      1652
  2474. E527:1642   shl      ax,1
  2475. E527:1644   shl      ax,1
  2476. E527:1646   shl      ax,1
  2477. E527:1648   shl      ax,1
  2478. E527:164A   and      dx,000F
  2479. E527:164E   or       ax,dx
  2480. E527:1650   jmp      1658
  2481. E527:1652   and      dx,F000
  2482. E527:1656   or       ax,dx
  2483. E527:1658   mov      di,0107
  2484. E527:165B   mov      es:[di],ax
  2485. E527:165E   pop      dx
  2486. E527:165F   call     082D
  2487. E527:1662   cmc      
  2488. E527:1663   cmc      
  2489. E527:1664   pop      es
  2490. E527:1665   pop      di
  2491. E527:1666   pop      dx
  2492. E527:1667   pop      cx
  2493. E527:1668   pop      bx
  2494. E527:1669   pop      ax
  2495. E527:166A   ret      
  2496. E527:166B   push     bx
  2497. E527:166C   push     dx
  2498. E527:166D   cmp      dx,00
  2499. E527:1670   je       1677
  2500. E527:1672   cmp      dx,[si+0D]
  2501. E527:1675   jbe      167A
  2502. E527:1677   mov      dx,0002
  2503. E527:167A   mov      bx,dx
  2504. E527:167C   call     15BE
  2505. E527:167F   cmp      ax,0000
  2506. E527:1682   je       1694
  2507. E527:1684   inc      dx
  2508. E527:1685   cmp      dx,[si+0D]
  2509. E527:1688   jbe      168D
  2510. E527:168A   mov      dx,0002
  2511. E527:168D   cmp      dx,bx
  2512. E527:168F   jne      167C
  2513. E527:1691   stc      
  2514. E527:1692   jmp      169D
  2515. E527:1694   push     dx
  2516. E527:1695   mov      ax,0FFF
  2517. E527:1698   call     1605
  2518. E527:169B   pop      ax
  2519. E527:169C   clc      
  2520. E527:169D   pop      dx
  2521. E527:169E   pop      bx
  2522. E527:169F   ret      
  2523. E527:16A0   push     dx
  2524. E527:16A1   lds      si,ss:[003E]
  2525. E527:16A6   call     15BE
  2526. E527:16A9   jb       16BD
  2527. E527:16AB   or       ax,ax
  2528. E527:16AD   je       16BD
  2529. E527:16AF   push     ax
  2530. E527:16B0   mov      ax,0000
  2531. E527:16B3   call     1605
  2532. E527:16B6   pop      dx
  2533. E527:16B7   cmp      dx,0FF8
  2534. E527:16BB   jb       16A6
  2535. E527:16BD   pop      dx
  2536. E527:16BE   ret      
  2537. E527:16BF   push     si
  2538. E527:16C0   push     di
  2539. E527:16C1   push     ds
  2540. E527:16C2   push     es
  2541. E527:16C3   mov      word ptr ss:[0109],0000
  2542. E527:16CA   call     1722
  2543. E527:16CD   call     1D82
  2544. E527:16D0   jnb      171A
  2545. E527:16D2   add      si,03
  2546. E527:16D5   xor      dx,dx
  2547. E527:16D7   cmp      byte ptr [si],00
  2548. E527:16DA   je       171D
  2549. E527:16DC   call     2B32
  2550. E527:16DF   jnb      16F0
  2551. E527:16E1   xor      dx,dx
  2552. E527:16E3   call     1722
  2553. E527:16E6   mov      byte ptr [si+03],00
  2554. E527:16EA   mov      [si+43],dx
  2555. E527:16ED   jmp      171D
  2556. E527:16EF   nop      
  2557. E527:16F0   push     cx
  2558. E527:16F1   push     si
  2559. E527:16F2   push     ds
  2560. E527:16F3   mov      ax,ss
  2561. E527:16F5   mov      ds,ax
  2562. E527:16F7   mov      si,0052
  2563. E527:16FA   mov      cx,0010
  2564. E527:16FD   xor      bx,bx
  2565. E527:16FF   call     2AA3
  2566. E527:1702   pop      ds
  2567. E527:1703   pop      si
  2568. E527:1704   pop      cx
  2569. E527:1705   jb       16E1
  2570. E527:1707   test     byte ptr es:[di+0B],10
  2571. E527:170C   je       16E1
  2572. E527:170E   mov      dx,es:[di+1A]
  2573. E527:1712   call     1722
  2574. E527:1715   mov      [si+43],dx
  2575. E527:1718   jmp      171D
  2576. E527:171A   mov      dx,[si+43]
  2577. E527:171D   pop      es
  2578. E527:171E   pop      ds
  2579. E527:171F   pop      di
  2580. E527:1720   pop      si
  2581. E527:1721   ret      
  2582. E527:1722   xor      ax,ax
  2583. E527:1724   test     word ptr ss:[0105],0080
  2584. E527:172B   jne      1734
  2585. E527:172D   mov      al,51
  2586. E527:172F   mul      byte ptr ss:[0051]
  2587. E527:1734   lds      si,ss:[0022]
  2588. E527:1739   add      si,ax
  2589. E527:173B   ret      
  2590. E527:173C   cmp      al,00
  2591. E527:173E   jne      1747
  2592. E527:1740   mov      al,[0050]
  2593. E527:1744   jmp      1749
  2594. E527:1746   nop      
  2595. E527:1747   dec      al
  2596. E527:1749   cmp      al,ss:[0028]
  2597. E527:174E   jnb      1766
  2598. E527:1750   mov      [0051],al
  2599. E527:1754   push     ax
  2600. E527:1755   call     14A7
  2601. E527:1758   mov      ss:[003E],di
  2602. E527:175D   mov      ss:[0040],es
  2603. E527:1762   pop      ax
  2604. E527:1763   clc      
  2605. E527:1764   jmp      176A
  2606. E527:1766   stc      
  2607. E527:1767   mov      ax,000F
  2608. E527:176A   ret      
  2609. E527:176B   push     dx
  2610. E527:176C   xor      dx,dx
  2611. E527:176E   mov      ax,[si+02]
  2612. E527:1771   mov      cx,0020
  2613. E527:1774   div      cx
  2614. E527:1776   pop      dx
  2615. E527:1777   cmp      dx,00
  2616. E527:177A   je       17B4
  2617. E527:177C   push     ax
  2618. E527:177D   push     dx
  2619. E527:177E   mov      cl,[si+04]
  2620. E527:1781   inc      cl
  2621. E527:1783   mul      cl
  2622. E527:1785   xchg     ax,bx
  2623. E527:1786   xor      dx,dx
  2624. E527:1788   div      bx
  2625. E527:178A   mov      cx,ax
  2626. E527:178C   mov      bx,dx
  2627. E527:178E   pop      dx
  2628. E527:178F   jcxz     179F
  2629. E527:1791   call     15BE
  2630. E527:1794   jb       17C5
  2631. E527:1796   cmp      ax,0000
  2632. E527:1799   je       17C5
  2633. E527:179B   mov      dx,ax
  2634. E527:179D   loop     1791
  2635. E527:179F   sub      dx,02
  2636. E527:17A2   mov      al,[si+04]
  2637. E527:17A5   inc      al
  2638. E527:17A7   xor      ah,ah
  2639. E527:17A9   mul      dx
  2640. E527:17AB   mov      dx,ax
  2641. E527:17AD   add      dx,[si+0B]
  2642. E527:17B0   sub      dx,[si+10]
  2643. E527:17B3   pop      ax
  2644. E527:17B4   push     dx
  2645. E527:17B5   xor      dx,dx
  2646. E527:17B7   xchg     ax,bx
  2647. E527:17B8   div      bx
  2648. E527:17BA   mov      bx,dx
  2649. E527:17BC   pop      dx
  2650. E527:17BD   add      dx,ax
  2651. E527:17BF   add      dx,[si+10]
  2652. E527:17C2   clc      
  2653. E527:17C3   jmp      17C7
  2654. E527:17C5   pop      ax
  2655. E527:17C6   stc      
  2656. E527:17C7   ret      
  2657. E527:17C8   push     di
  2658. E527:17C9   push     es
  2659. E527:17CA   call     1CB1
  2660. E527:17CD   pop      es
  2661. E527:17CE   pop      di
  2662. E527:17CF   je       1841
  2663. E527:17D1   call     1843
  2664. E527:17D4   jb       1841
  2665. E527:17D6   mov      ax,ss
  2666. E527:17D8   mov      ds,ax
  2667. E527:17DA   mov      es,ax
  2668. E527:17DC   mov      si,0052
  2669. E527:17DF   mov      di,016D
  2670. E527:17E2   push     cx
  2671. E527:17E3   push     di
  2672. E527:17E4   mov      cx,0020
  2673. E527:17E7   xor      al,al
  2674. E527:17E9   rep      stosb
  2675. E527:17EB   pop      di
  2676. E527:17EC   mov      cx,000B
  2677. E527:17EF   lodsb
  2678. E527:17F0   cmp      al,3F
  2679. E527:17F2   je       17F7
  2680. E527:17F4   stosb
  2681. E527:17F5   loop     17EF
  2682. E527:17F7   pop      cx
  2683. E527:17F8   je       1841
  2684. E527:17FA   mov      di,016D
  2685. E527:17FD   mov      es:[di+0B],cl
  2686. E527:1801   call     1176
  2687. E527:1804   mov      es:[di+16],ax
  2688. E527:1808   call     1137
  2689. E527:180B   mov      es:[di+18],ax
  2690. E527:180F   xor      ax,ax
  2691. E527:1811   cmp      ch,00
  2692. E527:1814   je       1820
  2693. E527:1816   lds      si,ss:[003E]
  2694. E527:181B   call     166B
  2695. E527:181E   jb       1841
  2696. E527:1820   mov      es:[di+1A],ax
  2697. E527:1824   push     bx
  2698. E527:1825   push     dx
  2699. E527:1826   mov      ax,0020
  2700. E527:1829   mul      bx
  2701. E527:182B   mov      bx,dx
  2702. E527:182D   pop      dx
  2703. E527:182E   mov      cx,0020
  2704. E527:1831   call     3EEA
  2705. E527:1834   pop      bx
  2706. E527:1835   jb       1841
  2707. E527:1837   cmp      ax,cx
  2708. E527:1839   jb       1841
  2709. E527:183B   call     2CDF
  2710. E527:183E   clc      
  2711. E527:183F   jmp      1842
  2712. E527:1841   stc      
  2713. E527:1842   ret      
  2714. E527:1843   push     ax
  2715. E527:1844   push     cx
  2716. E527:1845   push     di
  2717. E527:1846   xor      bx,bx
  2718. E527:1848   mov      cx,0001
  2719. E527:184B   lds      si,ss:[003E]
  2720. E527:1850   mov      ax,ss
  2721. E527:1852   mov      es,ax
  2722. E527:1854   mov      di,00AA
  2723. E527:1857   cmp      dx,00
  2724. E527:185A   jne      1861
  2725. E527:185C   cmp      bx,[si+09]
  2726. E527:185F   jnb      188E
  2727. E527:1861   push     bx
  2728. E527:1862   push     dx
  2729. E527:1863   mov      ax,0020
  2730. E527:1866   mul      bx
  2731. E527:1868   mov      bx,dx
  2732. E527:186A   pop      dx
  2733. E527:186B   call     3E78
  2734. E527:186E   pop      bx
  2735. E527:186F   jb       188E
  2736. E527:1871   cmp      ax,0000
  2737. E527:1874   je       1889
  2738. E527:1876   cmp      byte ptr ss:[00AA],00
  2739. E527:187C   je       188F
  2740. E527:187E   cmp      byte ptr ss:[00AA],E5
  2741. E527:1884   je       188F
  2742. E527:1886   inc      bx
  2743. E527:1887   jmp      1857
  2744. E527:1889   call     1893
  2745. E527:188C   jmp      188F
  2746. E527:188E   stc      
  2747. E527:188F   pop      di
  2748. E527:1890   pop      cx
  2749. E527:1891   pop      ax
  2750. E527:1892   ret      
  2751. E527:1893   push     bx
  2752. E527:1894   push     di
  2753. E527:1895   push     es
  2754. E527:1896   push     dx
  2755. E527:1897   mov      al,[si+04]
  2756. E527:189A   inc      ax
  2757. E527:189B   xor      ah,ah
  2758. E527:189D   mul      word ptr [si+02]
  2759. E527:18A0   mov      cx,ax
  2760. E527:18A2   mov      ax,0020
  2761. E527:18A5   mul      bx
  2762. E527:18A7   mov      bx,dx
  2763. E527:18A9   pop      dx
  2764. E527:18AA   mov      di,ss
  2765. E527:18AC   mov      es,di
  2766. E527:18AE   mov      di,0CBF
  2767. E527:18B1   push     ax
  2768. E527:18B2   push     cx
  2769. E527:18B3   push     di
  2770. E527:18B4   xor      al,al
  2771. E527:18B6   rep      stosb
  2772. E527:18B8   pop      di
  2773. E527:18B9   pop      cx
  2774. E527:18BA   pop      ax
  2775. E527:18BB   call     3EEA
  2776. E527:18BE   jb       18C2
  2777. E527:18C0   cmp      ax,cx
  2778. E527:18C2   pop      es
  2779. E527:18C3   pop      di
  2780. E527:18C4   pop      bx
  2781. E527:18C5   ret      
  2782. E527:18C6   aas      
  2783. E527:18C7   aas      
  2784. E527:18C8   aas      
  2785. E527:18C9   aas      
  2786. E527:18CA   aas      
  2787. E527:18CB   aas      
  2788. E527:18CC   aas      
  2789. E527:18CD   aas      
  2790. E527:18CE   aas      
  2791. E527:18CF   aas      
  2792. E527:18D0   aas      
  2793. E527:18D1   mov      dx,es:[di+1A]
  2794. E527:18D5   xor      bx,bx
  2795. E527:18D7   mov      cx,0016
  2796. E527:18DA   mov      ax,cs
  2797. E527:18DC   mov      ds,ax
  2798. E527:18DE   mov      si,18C6
  2799. E527:18E1   call     2AA3
  2800. E527:18E4   jb       1927
  2801. E527:18E6   test     byte ptr es:[di+0B],10
  2802. E527:18EB   je       1927
  2803. E527:18ED   push     cx
  2804. E527:18EE   push     di
  2805. E527:18EF   mov      al,2E
  2806. E527:18F1   scasb
  2807. E527:18F2   jne      18FB
  2808. E527:18F4   mov      al,20
  2809. E527:18F6   mov      cx,000A
  2810. E527:18F9   repe     scasb
  2811. E527:18FB   pop      di
  2812. E527:18FC   pop      cx
  2813. E527:18FD   jne      1927
  2814. E527:18FF   inc      bx
  2815. E527:1900   call     2AA3
  2816. E527:1903   jb       1927
  2817. E527:1905   test     byte ptr es:[di+0B],10
  2818. E527:190A   je       1927
  2819. E527:190C   push     cx
  2820. E527:190D   push     di
  2821. E527:190E   mov      al,2E
  2822. E527:1910   scasb
  2823. E527:1911   jne      191D
  2824. E527:1913   scasb
  2825. E527:1914   jne      191D
  2826. E527:1916   mov      al,20
  2827. E527:1918   mov      cx,0009
  2828. E527:191B   repe     scasb
  2829. E527:191D   pop      di
  2830. E527:191E   pop      cx
  2831. E527:191F   jne      1927
  2832. E527:1921   inc      bx
  2833. E527:1922   call     2AA3
  2834. E527:1925   jb       192A
  2835. E527:1927   stc      
  2836. E527:1928   jmp      192B
  2837. E527:192A   clc      
  2838. E527:192B   ret      
  2839. E527:192C   push     si
  2840. E527:192D   lodsw
  2841. E527:192E   cmp      ah,3A
  2842. E527:1931   je       193E
  2843. E527:1933   mov      al,[0050]
  2844. E527:1937   mov      [0051],al
  2845. E527:193B   clc      
  2846. E527:193C   jmp      1941
  2847. E527:193E   call     4326
  2848. E527:1941   pop      si
  2849. E527:1942   ret      
  2850. E527:1943   push     cx
  2851. E527:1944   push     di
  2852. E527:1945   push     es
  2853. E527:1946   call     435A
  2854. E527:1949   mov      di,ds
  2855. E527:194B   mov      es,di
  2856. E527:194D   mov      di,si
  2857. E527:194F   mov      al,2A
  2858. E527:1951   push     cx
  2859. E527:1952   repne    scasb
  2860. E527:1954   pop      cx
  2861. E527:1955   je       195D
  2862. E527:1957   mov      di,si
  2863. E527:1959   mov      al,3F
  2864. E527:195B   repne    scasb
  2865. E527:195D   pop      es
  2866. E527:195E   pop      di
  2867. E527:195F   pop      cx
  2868. E527:1960   ret      
  2869. E527:1961   push     si
  2870. E527:1962   lodsw
  2871. E527:1963   cmp      ah,3A
  2872. E527:1966   jne      1969
  2873. E527:1968   lodsw
  2874. E527:1969   cmp      al,ss:[0114]
  2875. E527:196E   jne      1973
  2876. E527:1970   lodsb
  2877. E527:1971   xchg     al,ah
  2878. E527:1973   cmp      al,2E
  2879. E527:1975   jne      1995
  2880. E527:1977   mov      al,ah
  2881. E527:1979   or       al,al
  2882. E527:197B   je       1995
  2883. E527:197D   cmp      al,2E
  2884. E527:197F   jne      1993
  2885. E527:1981   lodsb
  2886. E527:1982   cmp      al,ss:[0114]
  2887. E527:1987   jne      1993
  2888. E527:1989   lodsw
  2889. E527:198A   cmp      ax,2E2E
  2890. E527:198D   je       1979
  2891. E527:198F   or       al,al
  2892. E527:1991   jne      1995
  2893. E527:1993   xor      al,al
  2894. E527:1995   pop      si
  2895. E527:1996   ret      
  2896. Int21_Fn39 Create a new directory
  2897. E527:1997   lds      si,ss:[00A6]
  2898. E527:199C   call     435A
  2899. E527:199F   jb       1A1C
  2900. E527:19A1   mov      bx,cx
  2901. E527:19A3   call     1961
  2902. E527:19A6   je       1A1C
  2903. E527:19A8   lodsb
  2904. E527:19A9   cmp      al,ss:[0114]
  2905. E527:19AE   je       19C7
  2906. E527:19B0   cmp      al,2E
  2907. E527:19B2   je       19C7
  2908. E527:19B4   call     192C
  2909. E527:19B7   jb       1A1C
  2910. E527:19B9   call     1722
  2911. E527:19BC   call     435A
  2912. E527:19BF   inc      cx
  2913. E527:19C0   add      cx,bx
  2914. E527:19C2   cmp      cx,40
  2915. E527:19C5   ja       1A1C
  2916. E527:19C7   mov      cx,0010
  2917. E527:19CA   call     2A25
  2918. E527:19CD   jb       19D1
  2919. E527:19CF   jmp      1A1C
  2920. E527:19D1   test     al,40
  2921. E527:19D3   jne      1A1C
  2922. E527:19D5   cmp      ax,0003
  2923. E527:19D8   je       1A1F
  2924. E527:19DA   mov      ch,01
  2925. E527:19DC   mov      cl,10
  2926. E527:19DE   call     17C8
  2927. E527:19E1   jb       1A1C
  2928. E527:19E3   push     dx
  2929. E527:19E4   mov      dx,es:[di+1A]
  2930. E527:19E8   xor      bx,bx
  2931. E527:19EA   call     1893
  2932. E527:19ED   push     di
  2933. E527:19EE   mov      al,2E
  2934. E527:19F0   stosb
  2935. E527:19F1   mov      al,20
  2936. E527:19F3   mov      cx,000A
  2937. E527:19F6   rep      stosb
  2938. E527:19F8   pop      di
  2939. E527:19F9   xor      ax,ax
  2940. E527:19FB   mov      cx,0020
  2941. E527:19FE   call     3EEA
  2942. E527:1A01   jb       1A1C
  2943. E527:1A03   mov      byte ptr es:[di+01],2E
  2944. E527:1A08   pop      word ptr es:[di+1A]
  2945. E527:1A0C   mov      ax,0020
  2946. E527:1A0F   mov      cx,ax
  2947. E527:1A11   call     3EEA
  2948. E527:1A14   jb       1A1C
  2949. E527:1A16   call     0920
  2950. E527:1A19   clc      
  2951. E527:1A1A   jmp      1A20
  2952. E527:1A1C   mov      ax,0005
  2953. E527:1A1F   stc      
  2954. E527:1A20   ret      
  2955. Int21_Fn3A Delete a directory
  2956. E527:1A21   lds      si,ss:[00A6]
  2957. E527:1A26   call     435A
  2958. E527:1A29   jb       1A80
  2959. E527:1A2B   mov      cx,0010
  2960. E527:1A2E   call     2A25
  2961. E527:1A31   jb       1A8A
  2962. E527:1A33   test     al,40
  2963. E527:1A35   jne      1A80
  2964. E527:1A37   test     al,10
  2965. E527:1A39   je       1A8A
  2966. E527:1A3B   call     1722
  2967. E527:1A3E   mov      ax,es:[di+1A]
  2968. E527:1A42   cmp      ax,[si+43]
  2969. E527:1A45   je       1A85
  2970. E527:1A47   cmp      ax,0000
  2971. E527:1A4A   je       1A80
  2972. E527:1A4C   push     bx
  2973. E527:1A4D   push     dx
  2974. E527:1A4E   push     ax
  2975. E527:1A4F   call     18D1
  2976. E527:1A52   pop      dx
  2977. E527:1A53   jb       1A58
  2978. E527:1A55   call     16A0
  2979. E527:1A58   pop      dx
  2980. E527:1A59   pop      bx
  2981. E527:1A5A   jb       1A80
  2982. E527:1A5C   mov      ax,ss
  2983. E527:1A5E   mov      es,ax
  2984. E527:1A60   push     dx
  2985. E527:1A61   mov      ax,0020
  2986. E527:1A64   mul      bx
  2987. E527:1A66   mov      bx,dx
  2988. E527:1A68   pop      dx
  2989. E527:1A69   mov      di,00AA
  2990. E527:1A6C   mov      byte ptr ss:[00AA],E5
  2991. E527:1A72   mov      cx,0001
  2992. E527:1A75   call     3EEA
  2993. E527:1A78   jb       1A80
  2994. E527:1A7A   call     0920
  2995. E527:1A7D   clc      
  2996. E527:1A7E   jmp      1A8E
  2997. E527:1A80   mov      ax,0005
  2998. E527:1A83   jmp      1A8D
  2999. E527:1A85   mov      ax,0010
  3000. E527:1A88   jmp      1A8D
  3001. E527:1A8A   mov      ax,0003
  3002. E527:1A8D   stc      
  3003. E527:1A8E   ret      
  3004. Int21_Fn3B Set DOS default directory
  3005. E527:1A8F   lds      si,ss:[00A6]
  3006. E527:1A94   call     435A
  3007. E527:1A97   jb       1ADE
  3008. E527:1A99   call     1943
  3009. E527:1A9C   je       1AD9
  3010. E527:1A9E   mov      cx,0016
  3011. E527:1AA1   call     2A25
  3012. E527:1AA4   jnb      1AE5
  3013. E527:1AA6   lds      si,ss:[00A6]
  3014. E527:1AAB   lodsw
  3015. E527:1AAC   cmp      ah,3A
  3016. E527:1AAF   jne      1AB2
  3017. E527:1AB1   lodsw
  3018. E527:1AB2   cmp      ax,2E2E
  3019. E527:1AB5   jne      1ABA
  3020. E527:1AB7   lodsb
  3021. E527:1AB8   xchg     al,ah
  3022. E527:1ABA   cmp      ax,002E
  3023. E527:1ABD   je       1ACA
  3024. E527:1ABF   or       ah,ah
  3025. E527:1AC1   jne      1AD9
  3026. E527:1AC3   cmp      al,ss:[0114]
  3027. E527:1AC8   jne      1AD9
  3028. E527:1ACA   call     1722
  3029. E527:1ACD   mov      word ptr [si+43],0000
  3030. E527:1AD2   mov      byte ptr [si+03],00
  3031. E527:1AD6   jmp      1BA0
  3032. E527:1AD9   mov      ax,0003
  3033. E527:1ADC   jmp      1AE1
  3034. E527:1ADE   mov      ax,0005
  3035. E527:1AE1   stc      
  3036. E527:1AE2   jmp      1BA0
  3037. E527:1AE5   test     byte ptr es:[di+0B],40
  3038. E527:1AEA   jne      1ADE
  3039. E527:1AEC   test     byte ptr es:[di+0B],10
  3040. E527:1AF1   je       1AD9
  3041. E527:1AF3   lds      si,ss:[00A6]
  3042. E527:1AF8   mov      dx,es:[di+1A]
  3043. E527:1AFC   mov      ax,[si]
  3044. E527:1AFE   cmp      ah,3A
  3045. E527:1B01   jne      1B04
  3046. E527:1B03   lodsw
  3047. E527:1B04   mov      ax,ss
  3048. E527:1B06   mov      es,ax
  3049. E527:1B08   mov      di,012C
  3050. E527:1B0B   lodsb
  3051. E527:1B0C   cmp      al,ss:[0114]
  3052. E527:1B11   je       1B2B
  3053. E527:1B13   push     si
  3054. E527:1B14   push     ds
  3055. E527:1B15   call     1722
  3056. E527:1B18   cmp      byte ptr [si+03],00
  3057. E527:1B1C   je       1B28
  3058. E527:1B1E   add      si,02
  3059. E527:1B21   lodsb
  3060. E527:1B22   stosb
  3061. E527:1B23   cmp      al,00
  3062. E527:1B25   jne      1B21
  3063. E527:1B27   dec      di
  3064. E527:1B28   pop      ds
  3065. E527:1B29   pop      si
  3066. E527:1B2A   dec      si
  3067. E527:1B2B   mov      bx,012C
  3068. E527:1B2E   add      bx,41
  3069. E527:1B31   mov      al,[si]
  3070. E527:1B33   cmp      al,00
  3071. E527:1B35   je       1B74
  3072. E527:1B37   cmp      al,2E
  3073. E527:1B39   je       1B57
  3074. E527:1B3B   cmp      di,bx
  3075. E527:1B3D   je       1AD9
  3076. E527:1B3F   mov      al,[0114]
  3077. E527:1B43   stosb
  3078. E527:1B44   lodsb
  3079. E527:1B45   cmp      al,00
  3080. E527:1B47   je       1B74
  3081. E527:1B49   cmp      al,ss:[0114]
  3082. E527:1B4E   je       1B31
  3083. E527:1B50   cmp      di,bx
  3084. E527:1B52   je       1AD9
  3085. E527:1B54   stosb
  3086. E527:1B55   jmp      1B44
  3087. E527:1B57   inc      si
  3088. E527:1B58   lodsb
  3089. E527:1B59   cmp      al,00
  3090. E527:1B5B   je       1B74
  3091. E527:1B5D   cmp      al,2E
  3092. E527:1B5F   jne      1B31
  3093. E527:1B61   lodsb
  3094. E527:1B62   cmp      al,00
  3095. E527:1B64   jne      1B67
  3096. E527:1B66   dec      si
  3097. E527:1B67   dec      di
  3098. E527:1B68   mov      ah,ss:[0114]
  3099. E527:1B6D   cmp      es:[di],ah
  3100. E527:1B70   jne      1B67
  3101. E527:1B72   jmp      1B31
  3102. E527:1B74   cmp      di,bx
  3103. E527:1B76   jne      1B7B
  3104. E527:1B78   jmp      1AD9
  3105. E527:1B7B   cmp      di,012C
  3106. E527:1B7F   jne      1B82
  3107. E527:1B81   inc      di
  3108. E527:1B82   stosb
  3109. E527:1B83   call     1722
  3110. E527:1B86   mov      [si+43],dx
  3111. E527:1B89   add      si,02
  3112. E527:1B8C   mov      ax,ds
  3113. E527:1B8E   mov      es,ax
  3114. E527:1B90   mov      di,si
  3115. E527:1B92   mov      ax,ss
  3116. E527:1B94   mov      ds,ax
  3117. E527:1B96   mov      si,012C
  3118. E527:1B99   lodsb
  3119. E527:1B9A   stosb
  3120. E527:1B9B   cmp      al,00
  3121. E527:1B9D   jne      1B99
  3122. E527:1B9F   clc      
  3123. E527:1BA0   ret      
  3124. Int21_Fn47 Get DOS default directory
  3125. E527:1BA1   mov      al,dl
  3126. E527:1BA3   call     173C
  3127. E527:1BA6   jb       1BC1
  3128. E527:1BA8   push     si
  3129. E527:1BA9   call     16BF
  3130. E527:1BAC   mov      es,ss:[00A8]
  3131. E527:1BB1   pop      di
  3132. E527:1BB2   call     1722
  3133. E527:1BB5   add      si,03
  3134. E527:1BB8   lodsb
  3135. E527:1BB9   call     42E7
  3136. E527:1BBC   stosb
  3137. E527:1BBD   cmp      al,00
  3138. E527:1BBF   jne      1BB8
  3139. E527:1BC1   ret      
  3140. Int21_Fn0D Reset disk
  3141. E527:1BC2   xor      al,al
  3142. E527:1BC4   mov      [0051],al
  3143. E527:1BC8   call     0920
  3144. E527:1BCB   call     0949
  3145. E527:1BCE   inc      al
  3146. E527:1BD0   cmp      al,ss:[0028]
  3147. E527:1BD5   jne      1BC4
  3148. E527:1BD7   ret      
  3149. Int21_Fn0E Set DOS default disk
  3150. E527:1BD8   mov      al,[0028]
  3151. E527:1BDC   cmp      dl,al
  3152. E527:1BDE   jnb      1BE5
  3153. E527:1BE0   mov      ss:[0050],dl
  3154. E527:1BE5   ret      
  3155. Int21_Fn19 Get DOS default disk
  3156. E527:1BE6   mov      al,[0050]
  3157. E527:1BE9   ret      
  3158. Int21_Fn1A Set DTA
  3159. E527:1BEA   mov      [004C],dx
  3160. E527:1BEE   mov      ax,[00A8]
  3161. E527:1BF1   mov      [004E],ax
  3162. E527:1BF4   ret      
  3163. Int21_Fn2F Get DTA
  3164. E527:1BF5   les      bx,[004C]
  3165. E527:1BF9   lds      si,[00AB]
  3166. E527:1BFD   mov      [si+02],bx
  3167. E527:1C00   mov      [si+10],es
  3168. E527:1C03   ret      
  3169. Int21_Fn1B Get FAT info
  3170. E527:1C04   mov      dl,00
  3171. E527:1C06   jmp      1C08
  3172. Int21_Fn1C Get FAT info (any disk)
  3173. E527:1C08   mov      al,dl
  3174. E527:1C0A   call     173C
  3175. E527:1C0D   jb       1C39
  3176. E527:1C0F   call     16BF
  3177. E527:1C12   lds      si,ss:[00AB]
  3178. E527:1C17   lea      bx,[di+16]
  3179. E527:1C1A   mov      [si+0E],es
  3180. E527:1C1D   mov      [si+02],bx
  3181. E527:1C20   mov      ax,es:[di+02]
  3182. E527:1C24   mov      [si+04],ax
  3183. E527:1C27   mov      ax,es:[di+0D]
  3184. E527:1C2B   sub      ax,0001
  3185. E527:1C2E   mov      [si+06],ax
  3186. E527:1C31   mov      al,es:[di+04]
  3187. E527:1C35   inc      al
  3188. E527:1C37   xor      ah,ah
  3189. E527:1C39   ret      
  3190. Int21_Fn36 Get disk free space
  3191. E527:1C3A   mov      al,dl
  3192. E527:1C3C   call     173C
  3193. E527:1C3F   jnb      1C47
  3194. E527:1C41   mov      ax,FFFF
  3195. E527:1C44   jmp      1C57
  3196. E527:1C46   nop      
  3197. E527:1C47   call     16BF
  3198. E527:1C4A   call     15A5
  3199. E527:1C4D   lds      si,ss:[00AB]
  3200. E527:1C52   mov      [si+02],bx
  3201. E527:1C55   jmp      1C20
  3202. E527:1C57   ret      
  3203. E527:1C58   push     si
  3204. E527:1C59   push     ds
  3205. E527:1C5A   mov      word ptr es:[bx+03],0000
  3206. E527:1C60   lds      si,ss:[009E]
  3207. E527:1C65   mov      ss:[00FF],ds
  3208. E527:1C6A   mov      ax,[si+06]
  3209. E527:1C6D   mov      [00FD],ax
  3210. E527:1C71   call     dword ptr ss:[00FD]
  3211. E527:1C76   mov      ax,[si+08]
  3212. E527:1C79   mov      [00FD],ax
  3213. E527:1C7D   call     dword ptr ss:[00FD]
  3214. E527:1C82   clc      
  3215. E527:1C83   test     word ptr es:[bx+03],8000
  3216. E527:1C89   je       1C8F
  3217. E527:1C8B   call     41D8
  3218. E527:1C8E   stc      
  3219. E527:1C8F   pop      ds
  3220. E527:1C90   pop      si
  3221. E527:1C91   ret      
  3222. E527:1C92   push     dx
  3223. E527:1C93   push     si
  3224. E527:1C94   push     di
  3225. E527:1C95   push     ds
  3226. E527:1C96   push     es
  3227. E527:1C97   lds      si,ss:[00A6]
  3228. E527:1C9C   mov      di,ss
  3229. E527:1C9E   mov      es,di
  3230. E527:1CA0   mov      di,0052
  3231. E527:1CA3   xor      dl,dl
  3232. E527:1CA5   call     428B
  3233. E527:1CA8   call     1CB1
  3234. E527:1CAB   pop      es
  3235. E527:1CAC   pop      ds
  3236. E527:1CAD   pop      di
  3237. E527:1CAE   pop      si
  3238. E527:1CAF   pop      dx
  3239. E527:1CB0   ret      
  3240. E527:1CB1   push     cx
  3241. E527:1CB2   push     si
  3242. E527:1CB3   push     ds
  3243. E527:1CB4   lds      si,ss:[0010]
  3244. E527:1CB9   les      di,[si+04]
  3245. E527:1CBC   test     word ptr es:[di+04],8000
  3246. E527:1CC2   je       1CE2
  3247. E527:1CC4   push     si
  3248. E527:1CC5   push     di
  3249. E527:1CC6   mov      cx,0008
  3250. E527:1CC9   add      di,0A
  3251. E527:1CCC   mov      si,0052
  3252. E527:1CCF   repe     cmpsb ss:
  3253. E527:1CD2   pop      di
  3254. E527:1CD3   pop      si
  3255. E527:1CD4   jne      1CE2
  3256. E527:1CD6   mov      ss:[009E],di
  3257. E527:1CDB   mov      ss:[00A0],es
  3258. E527:1CE0   jmp      1CEC
  3259. E527:1CE2   lds      si,[si]
  3260. E527:1CE4   cmp      si,FFFF
  3261. E527:1CE8   jne      1CB9
  3262. E527:1CEA   or       si,si
  3263. E527:1CEC   pop      ds
  3264. E527:1CED   pop      si
  3265. E527:1CEE   pop      cx
  3266. E527:1CEF   ret      
  3267. E527:1CF0   push     di
  3268. E527:1CF1   push     es
  3269. E527:1CF2   les      di,[00A2]
  3270. E527:1CF6   test     word ptr es:[di+05],8080
  3271. E527:1CFC   jne      1D08
  3272. E527:1CFE   les      di,es:[di+07]
  3273. E527:1D02   les      di,es:[di+12]
  3274. E527:1D06   jmp      1D0C
  3275. E527:1D08   les      di,es:[di+07]
  3276. E527:1D0C   mov      [009E],di
  3277. E527:1D10   mov      [00A0],es
  3278. E527:1D14   pop      es
  3279. E527:1D15   pop      di
  3280. E527:1D16   ret      
  3281. E527:1D17   cmp      di,[0036]
  3282. E527:1D1B   jne      1D81
  3283. E527:1D1D   mov      ax,es
  3284. E527:1D1F   cmp      ax,[0038]
  3285. E527:1D23   jne      1D81
  3286. E527:1D25   test     word ptr [0105],4000
  3287. E527:1D2B   je       1D81
  3288. E527:1D2D   push     di
  3289. E527:1D2E   push     es
  3290. E527:1D2F   mov      al,[00AA]
  3291. E527:1D32   push     ax
  3292. E527:1D33   mov      ax,[003A]
  3293. E527:1D36   mov      [009E],ax
  3294. E527:1D39   mov      ax,[003C]
  3295. E527:1D3C   mov      [00A0],ax
  3296. E527:1D3F   mov      ax,ds
  3297. E527:1D41   mov      es,ax
  3298. E527:1D43   mov      bx,0088
  3299. E527:1D46   mov      byte ptr es:[bx],04
  3300. E527:1D4A   mov      byte ptr es:[bx+02],07
  3301. E527:1D4F   call     1C58
  3302. E527:1D52   mov      byte ptr es:[bx],16
  3303. E527:1D56   mov      byte ptr es:[bx+02],05
  3304. E527:1D5B   call     1C58
  3305. E527:1D5E   test     word ptr es:[bx+03],0200
  3306. E527:1D64   jne      1D5B
  3307. E527:1D66   cmp      byte ptr es:[bx+0D],03
  3308. E527:1D6B   je       1D75
  3309. E527:1D6D   mov      byte ptr es:[bx+02],07
  3310. E527:1D72   call     1C58
  3311. E527:1D75   and      word ptr [0105],BFFF
  3312. E527:1D7B   pop      ax
  3313. E527:1D7C   mov      [00AA],al
  3314. E527:1D7F   pop      es
  3315. E527:1D80   pop      di
  3316. E527:1D81   ret      
  3317. E527:1D82   push     si
  3318. E527:1D83   push     ds
  3319. E527:1D84   call     1DD2
  3320. E527:1D87   mov      byte ptr es:[bx+02],01
  3321. E527:1D8C   call     1C58
  3322. E527:1D8F   mov      al,es:[bx+0E]
  3323. E527:1D93   cmp      al,01
  3324. E527:1D95   je       1DCE
  3325. E527:1D97   cmp      al,FF
  3326. E527:1D99   je       1DA0
  3327. E527:1D9B   call     0970
  3328. E527:1D9E   jb       1DCE
  3329. E527:1DA0   call     0949
  3330. E527:1DA3   lds      si,ss:[001E]
  3331. E527:1DA8   add      si,10
  3332. E527:1DAB   mov      es:[bx+0E],si
  3333. E527:1DAF   mov      es:[bx+10],ds
  3334. E527:1DB3   mov      byte ptr es:[bx+02],02
  3335. E527:1DB8   call     1C58
  3336. E527:1DBB   mov      di,es:[bx+12]
  3337. E527:1DBF   mov      es,es:[bx+14]
  3338. E527:1DC3   lds      bx,ss:[003E]
  3339. E527:1DC8   call     143F
  3340. E527:1DCB   stc      
  3341. E527:1DCC   jmp      1DCF
  3342. E527:1DCE   clc      
  3343. E527:1DCF   pop      ds
  3344. E527:1DD0   pop      si
  3345. E527:1DD1   ret      
  3346. E527:1DD2   lds      si,ss:[003E]
  3347. E527:1DD7   les      di,[si+12]
  3348. E527:1DDA   mov      ss:[009E],di
  3349. E527:1DDF   mov      ss:[00A0],es
  3350. E527:1DE4   mov      ax,ss
  3351. E527:1DE6   mov      es,ax
  3352. E527:1DE8   mov      bx,0088
  3353. E527:1DEB   mov      al,[si+01]
  3354. E527:1DEE   mov      es:[bx+01],al
  3355. E527:1DF2   mov      al,[si+16]
  3356. E527:1DF5   mov      es:[bx+0D],al
  3357. E527:1DF9   ret      
  3358. Int21_Fn0F Open FCB
  3359. E527:1DFA   push     ax
  3360. E527:1DFB   call     22BE
  3361. E527:1DFE   call     1C92
  3362. E527:1E01   je       1E14
  3363. E527:1E03   call     2A25
  3364. E527:1E06   jb       1E0F
  3365. E527:1E08   call     219C
  3366. E527:1E0B   xor      al,al
  3367. E527:1E0D   jmp      1E1B
  3368. E527:1E0F   mov      al,FF
  3369. E527:1E11   jmp      1E1B
  3370. E527:1E13   nop      
  3371. E527:1E14   call     227D
  3372. E527:1E17   jb       1E0F
  3373. E527:1E19   xor      al,al
  3374. E527:1E1B   pop      bx
  3375. E527:1E1C   mov      ah,bh
  3376. E527:1E1E   ret      
  3377. Int21_Fn10 Close FCB
  3378. E527:1E1F   push     ax
  3379. E527:1E20   call     22BE
  3380. E527:1E23   lds      si,ss:[0042]
  3381. E527:1E28   test     byte ptr [si+18],80
  3382. E527:1E2C   jne      1E6F
  3383. E527:1E2E   mov      al,[si+18]
  3384. E527:1E31   test     al,40
  3385. E527:1E33   jne      1E6F
  3386. E527:1E35   call     2A25
  3387. E527:1E38   jb       1E74
  3388. E527:1E3A   lds      si,ss:[0042]
  3389. E527:1E3F   or       byte ptr es:[di+0B],20
  3390. E527:1E44   push     di
  3391. E527:1E45   lea      di,[di+16]
  3392. E527:1E48   mov      ax,[si+16]
  3393. E527:1E4B   stosw
  3394. E527:1E4C   mov      ax,[si+14]
  3395. E527:1E4F   stosw
  3396. E527:1E50   mov      ax,[si+19]
  3397. E527:1E53   stosw
  3398. E527:1E54   mov      ax,[si+10]
  3399. E527:1E57   stosw
  3400. E527:1E58   mov      ax,[si+12]
  3401. E527:1E5B   stosw
  3402. E527:1E5C   pop      di
  3403. E527:1E5D   push     dx
  3404. E527:1E5E   mov      ax,0020
  3405. E527:1E61   mul      bx
  3406. E527:1E63   mov      bx,dx
  3407. E527:1E65   pop      dx
  3408. E527:1E66   mov      cx,0020
  3409. E527:1E69   call     3EEA
  3410. E527:1E6C   call     0920
  3411. E527:1E6F   xor      al,al
  3412. E527:1E71   jmp      1E76
  3413. E527:1E73   nop      
  3414. E527:1E74   mov      al,FF
  3415. E527:1E76   pop      bx
  3416. E527:1E77   mov      ah,bh
  3417. E527:1E79   ret      
  3418. Int21_Fn11 Find first FCB
  3419. E527:1E7A   push     ax
  3420. E527:1E7B   call     22BE
  3421. E527:1E7E   push     cx
  3422. E527:1E7F   call     2A25
  3423. E527:1E82   pop      cx
  3424. E527:1E83   jnb      1E8A
  3425. E527:1E85   mov      al,FF
  3426. E527:1E87   jmp      1EB2
  3427. E527:1E89   nop      
  3428. E527:1E8A   push     di
  3429. E527:1E8B   push     es
  3430. E527:1E8C   test     word ptr ss:[0105],1000
  3431. E527:1E93   je       1EA6
  3432. E527:1E95   les      di,[004C]
  3433. E527:1E99   mov      al,FF
  3434. E527:1E9B   stosb
  3435. E527:1E9C   xor      al,al
  3436. E527:1E9E   stosb
  3437. E527:1E9F   stosb
  3438. E527:1EA0   stosb
  3439. E527:1EA1   stosb
  3440. E527:1EA2   stosb
  3441. E527:1EA3   mov      al,cl
  3442. E527:1EA5   stosb
  3443. E527:1EA6   les      di,ss:[0042]
  3444. E527:1EAB   pop      ds
  3445. E527:1EAC   pop      si
  3446. E527:1EAD   call     2206
  3447. E527:1EB0   xor      al,al
  3448. E527:1EB2   pop      bx
  3449. E527:1EB3   mov      ah,bh
  3450. E527:1EB5   ret      
  3451. Int21_Fn12 Find next FCB
  3452. E527:1EB6   push     ax
  3453. E527:1EB7   call     22BE
  3454. E527:1EBA   call     225E
  3455. E527:1EBD   call     2AA3
  3456. E527:1EC0   jnb      1EC7
  3457. E527:1EC2   mov      al,FF
  3458. E527:1EC4   jmp      1ED7
  3459. E527:1EC6   nop      
  3460. E527:1EC7   mov      ax,es
  3461. E527:1EC9   mov      ds,ax
  3462. E527:1ECB   mov      si,di
  3463. E527:1ECD   les      di,ss:[0042]
  3464. E527:1ED2   call     2206
  3465. E527:1ED5   xor      al,al
  3466. E527:1ED7   pop      bx
  3467. E527:1ED8   mov      ah,bh
  3468. E527:1EDA   ret      
  3469. Int21_Fn13 Delete file via FCB
  3470. E527:1EDB   push     ax
  3471. E527:1EDC   call     22BE
  3472. E527:1EDF   call     2A25
  3473. E527:1EE2   jb       1F25
  3474. E527:1EE4   push     dx
  3475. E527:1EE5   push     si
  3476. E527:1EE6   push     ds
  3477. E527:1EE7   mov      dx,es:[di+1A]
  3478. E527:1EEB   or       dx,dx
  3479. E527:1EED   clc      
  3480. E527:1EEE   je       1EF3
  3481. E527:1EF0   call     16A0
  3482. E527:1EF3   pop      ds
  3483. E527:1EF4   pop      si
  3484. E527:1EF5   pop      dx
  3485. E527:1EF6   jb       1F25
  3486. E527:1EF8   mov      ax,ss
  3487. E527:1EFA   mov      es,ax
  3488. E527:1EFC   mov      di,00AA
  3489. E527:1EFF   mov      byte ptr ss:[00AA],E5
  3490. E527:1F05   push     bx
  3491. E527:1F06   push     dx
  3492. E527:1F07   mov      ax,0020
  3493. E527:1F0A   mul      bx
  3494. E527:1F0C   mov      bx,dx
  3495. E527:1F0E   pop      dx
  3496. E527:1F0F   mov      cx,0001
  3497. E527:1F12   call     3EEA
  3498. E527:1F15   pop      bx
  3499. E527:1F16   jb       1F25
  3500. E527:1F18   inc      bx
  3501. E527:1F19   call     2AA3
  3502. E527:1F1C   jnb      1EE4
  3503. E527:1F1E   call     0920
  3504. E527:1F21   xor      al,al
  3505. E527:1F23   jmp      1EB2
  3506. E527:1F25   mov      al,FF
  3507. E527:1F27   pop      bx
  3508. E527:1F28   mov      ah,bh
  3509. E527:1F2A   ret      
  3510. Int21_Fn14 Read file via FCB
  3511. E527:1F2B   push     ax
  3512. E527:1F2C   call     22BE
  3513. E527:1F2F   call     2383
  3514. E527:1F32   pop      bx
  3515. E527:1F33   mov      ah,bh
  3516. E527:1F35   ret      
  3517. Int21_Fn15 Write file via FCB
  3518. E527:1F36   push     ax
  3519. E527:1F37   call     22BE
  3520. E527:1F3A   call     2465
  3521. E527:1F3D   pop      bx
  3522. E527:1F3E   mov      ah,bh
  3523. E527:1F40   ret      
  3524. Int21_Fn16 Create file via FCB
  3525. E527:1F41   push     ax
  3526. E527:1F42   call     22BE
  3527. E527:1F45   test     word ptr ss:[0105],1000
  3528. E527:1F4C   je       1F5B
  3529. E527:1F4E   push     si
  3530. E527:1F4F   push     ds
  3531. E527:1F50   lds      si,ss:[0042]
  3532. E527:1F55   and      byte ptr [si+FF],FE
  3533. E527:1F59   pop      ds
  3534. E527:1F5A   pop      si
  3535. E527:1F5B   test     cx,FFD0
  3536. E527:1F5F   jne      1F84
  3537. E527:1F61   call     1C92
  3538. E527:1F64   jne      1F70
  3539. E527:1F66   call     227D
  3540. E527:1F69   jb       1F84
  3541. E527:1F6B   xor      al,al
  3542. E527:1F6D   jmp      1F86
  3543. E527:1F6F   nop      
  3544. E527:1F70   call     2BB6
  3545. E527:1F73   jb       1F84
  3546. E527:1F75   call     219C
  3547. E527:1F78   and      byte ptr es:[di+18],BF
  3548. E527:1F7D   call     0920
  3549. E527:1F80   xor      al,al
  3550. E527:1F82   jmp      1F86
  3551. E527:1F84   mov      al,FF
  3552. E527:1F86   pop      bx
  3553. E527:1F87   mov      ah,bh
  3554. E527:1F89   ret      
  3555. Int21_Fn17 Rename file via FCB
  3556. E527:1F8A   push     ax
  3557. E527:1F8B   call     22BE
  3558. E527:1F8E   lds      si,ss:[0042]
  3559. E527:1F93   mov      al,[si]
  3560. E527:1F95   call     173C
  3561. E527:1F98   jnb      1F9D
  3562. E527:1F9A   jmp      2033
  3563. E527:1F9D   call     16BF
  3564. E527:1FA0   lea      si,[si+11]
  3565. E527:1FA3   mov      cx,000B
  3566. E527:1FA6   mov      ax,ss
  3567. E527:1FA8   mov      es,ax
  3568. E527:1FAA   mov      di,005D
  3569. E527:1FAD   rep      movsb
  3570. E527:1FAF   mov      cx,0016
  3571. E527:1FB2   call     1722
  3572. E527:1FB5   mov      dx,[si+43]
  3573. E527:1FB8   xor      bx,bx
  3574. E527:1FBA   mov      ax,es
  3575. E527:1FBC   mov      ds,ax
  3576. E527:1FBE   mov      si,005D
  3577. E527:1FC1   call     2AA3
  3578. E527:1FC4   jnb      2033
  3579. E527:1FC6   cmp      ax,0012
  3580. E527:1FC9   jne      2033
  3581. E527:1FCB   xor      cx,cx
  3582. E527:1FCD   lds      si,ss:[0042]
  3583. E527:1FD2   test     word ptr ss:[0105],1000
  3584. E527:1FD9   je       1FDE
  3585. E527:1FDB   mov      cl,[si+FF]
  3586. E527:1FDE   lds      si,ss:[00A6]
  3587. E527:1FE3   mov      di,0052
  3588. E527:1FE6   push     dx
  3589. E527:1FE7   xor      ah,ah
  3590. E527:1FE9   call     428B
  3591. E527:1FEC   pop      dx
  3592. E527:1FED   mov      si,di
  3593. E527:1FEF   xor      bx,bx
  3594. E527:1FF1   call     2AA3
  3595. E527:1FF4   jnb      1FFE
  3596. E527:1FF6   jmp      2033
  3597. E527:1FF8   nop      
  3598. E527:1FF9   call     2AA3
  3599. E527:1FFC   jb       202C
  3600. E527:1FFE   push     cx
  3601. E527:1FFF   push     si
  3602. E527:2000   mov      cx,000B
  3603. E527:2003   mov      si,005D
  3604. E527:2006   push     di
  3605. E527:2007   lodsb    es:
  3606. E527:2009   cmp      al,3F
  3607. E527:200B   je       2010
  3608. E527:200D   stosb
  3609. E527:200E   jmp      2011
  3610. E527:2010   inc      di
  3611. E527:2011   loop     2007
  3612. E527:2013   pop      di
  3613. E527:2014   push     bx
  3614. E527:2015   push     dx
  3615. E527:2016   mov      ax,0020
  3616. E527:2019   mul      bx
  3617. E527:201B   mov      bx,dx
  3618. E527:201D   pop      dx
  3619. E527:201E   mov      cx,0020
  3620. E527:2021   call     3EEA
  3621. E527:2024   pop      bx
  3622. E527:2025   pop      si
  3623. E527:2026   pop      cx
  3624. E527:2027   jb       2033
  3625. E527:2029   inc      bx
  3626. E527:202A   jmp      1FF9
  3627. E527:202C   call     0920
  3628. E527:202F   xor      al,al
  3629. E527:2031   jmp      2035
  3630. E527:2033   mov      al,FF
  3631. E527:2035   pop      bx
  3632. E527:2036   mov      ah,bh
  3633. E527:2038   ret      
  3634. Int21_Fn21 Read random file record
  3635. E527:2039   push     ax
  3636. E527:203A   call     22BE
  3637. E527:203D   call     25BD
  3638. E527:2040   jb       205C
  3639. E527:2042   push     word ptr es:[di+0C]
  3640. E527:2046   mov      bl,es:[di+20]
  3641. E527:204A   push     bx
  3642. E527:204B   call     2383
  3643. E527:204E   les      di,ss:[0042]
  3644. E527:2053   pop      bx
  3645. E527:2054   mov      es:[di+20],bl
  3646. E527:2058   pop      word ptr es:[di+0C]
  3647. E527:205C   pop      bx
  3648. E527:205D   mov      ah,bh
  3649. E527:205F   ret      
  3650. Int21_Fn22 Write random file record
  3651. E527:2060   push     ax
  3652. E527:2061   call     22BE
  3653. E527:2064   call     25BD
  3654. E527:2067   jb       2083
  3655. E527:2069   push     word ptr es:[di+0C]
  3656. E527:206D   mov      bl,es:[di+20]
  3657. E527:2071   push     bx
  3658. E527:2072   call     2465
  3659. E527:2075   les      di,ss:[0042]
  3660. E527:207A   pop      bx
  3661. E527:207B   mov      es:[di+20],bl
  3662. E527:207F   pop      word ptr es:[di+0C]
  3663. E527:2083   pop      bx
  3664. E527:2084   mov      ah,bh
  3665. E527:2086   ret      
  3666. Int21_Fn23 Get file size via FCB
  3667. E527:2087   push     ax
  3668. E527:2088   call     22BE
  3669. E527:208B   call     1C92
  3670. E527:208E   je       20B7
  3671. E527:2090   call     2A25
  3672. E527:2093   jb       20B7
  3673. E527:2095   lds      si,ss:[0042]
  3674. E527:209A   mov      ax,es:[di+1E]
  3675. E527:209E   xor      dx,dx
  3676. E527:20A0   div      word ptr [si+0E]
  3677. E527:20A3   mov      [si+23],ax
  3678. E527:20A6   mov      ax,es:[di+1C]
  3679. E527:20AA   div      word ptr [si+0E]
  3680. E527:20AD   jnb      20B0
  3681. E527:20AF   inc      ax
  3682. E527:20B0   mov      [si+21],ax
  3683. E527:20B3   xor      al,al
  3684. E527:20B5   jmp      20B9
  3685. E527:20B7   mov      al,FF
  3686. E527:20B9   pop      bx
  3687. E527:20BA   mov      ah,bh
  3688. E527:20BC   ret      
  3689. Int21_Fn24 Set random file block adres
  3690. E527:20BD   push     ax
  3691. E527:20BE   call     22BE
  3692. E527:20C1   les      di,ss:[0042]
  3693. E527:20C6   mov      ax,0080
  3694. E527:20C9   mul      word ptr es:[di+0C]
  3695. E527:20CD   mov      bl,es:[di+20]
  3696. E527:20D1   and      bx,007F
  3697. E527:20D5   add      ax,bx
  3698. E527:20D7   adc      dx,00
  3699. E527:20DA   mov      es:[di+21],ax
  3700. E527:20DE   mov      es:[di+23],dx
  3701. E527:20E2   pop      bx
  3702. E527:20E3   mov      ah,bh
  3703. E527:20E5   ret      
  3704. Int21_Fn27 Read random file block
  3705. E527:20E6   push     ax
  3706. E527:20E7   push     word ptr ss:[004C]
  3707. E527:20EC   push     word ptr ss:[004E]
  3708. E527:20F1   push     cx
  3709. E527:20F2   jcxz     2127
  3710. E527:20F4   push     cx
  3711. E527:20F5   call     22BE
  3712. E527:20F8   pop      cx
  3713. E527:20F9   call     25BD
  3714. E527:20FC   jb       2127
  3715. E527:20FE   call     2383
  3716. E527:2101   or       al,al
  3717. E527:2103   jne      2127
  3718. E527:2105   les      di,ss:[0042]
  3719. E527:210A   mov      ax,es:[di+0E]
  3720. E527:210E   add      ss:[004C],ax
  3721. E527:2113   adc      word ptr ss:[004E],00
  3722. E527:2119   add      word ptr es:[di+21],01
  3723. E527:211E   adc      word ptr es:[di+23],00
  3724. E527:2123   loop     20FE
  3725. E527:2125   xor      al,al
  3726. E527:2127   pop      bx
  3727. E527:2128   sub      bx,cx
  3728. E527:212A   mov      cx,bx
  3729. E527:212C   lds      si,ss:[00AB]
  3730. E527:2131   mov      [si+04],cx
  3731. E527:2134   pop      word ptr ss:[004E]
  3732. E527:2139   pop      word ptr ss:[004C]
  3733. E527:213E   pop      bx
  3734. E527:213F   mov      ah,bh
  3735. E527:2141   ret      
  3736. Int21_Fn28 Write random file block
  3737. E527:2142   push     ax
  3738. E527:2143   push     word ptr ss:[004C]
  3739. E527:2148   push     word ptr ss:[004E]
  3740. E527:214D   push     cx
  3741. E527:214E   push     cx
  3742. E527:214F   call     22BE
  3743. E527:2152   pop      cx
  3744. E527:2153   call     25BD
  3745. E527:2156   jb       2181
  3746. E527:2158   call     2465
  3747. E527:215B   or       al,al
  3748. E527:215D   jne      2181
  3749. E527:215F   les      di,ss:[0042]
  3750. E527:2164   mov      ax,es:[di+0E]
  3751. E527:2168   add      ss:[004C],ax
  3752. E527:216D   adc      word ptr ss:[004E],00
  3753. E527:2173   add      word ptr es:[di+21],01
  3754. E527:2178   adc      word ptr es:[di+23],00
  3755. E527:217D   loop     2158
  3756. E527:217F   xor      al,al
  3757. E527:2181   pop      bx
  3758. E527:2182   sub      bx,cx
  3759. E527:2184   mov      cx,bx
  3760. E527:2186   lds      si,ss:[00AB]
  3761. E527:218B   mov      [si+04],cx
  3762. E527:218E   pop      word ptr ss:[004E]
  3763. E527:2193   pop      word ptr ss:[004C]
  3764. E527:2198   pop      bx
  3765. E527:2199   mov      ah,bh
  3766. E527:219B   ret      
  3767. E527:219C   push     bx
  3768. E527:219D   push     dx
  3769. E527:219E   push     di
  3770. E527:219F   push     es
  3771. E527:21A0   les      di,ss:[0042]
  3772. E527:21A5   pop      ds
  3773. E527:21A6   pop      si
  3774. E527:21A7   push     si
  3775. E527:21A8   push     di
  3776. E527:21A9   lea      di,[di+01]
  3777. E527:21AC   mov      cx,000B
  3778. E527:21AF   rep      movsb
  3779. E527:21B1   pop      di
  3780. E527:21B2   pop      si
  3781. E527:21B3   mov      word ptr es:[di+0E],0080
  3782. E527:21B9   mov      byte ptr es:[di+20],00
  3783. E527:21BE   mov      word ptr es:[di+0C],0000
  3784. E527:21C4   mov      ax,[si+1A]
  3785. E527:21C7   mov      es:[di+19],ax
  3786. E527:21CB   mov      es:[di+1D],ax
  3787. E527:21CF   mov      word ptr es:[di+1B],0000
  3788. E527:21D5   mov      ax,[si+16]
  3789. E527:21D8   mov      es:[di+16],ax
  3790. E527:21DC   mov      ax,[si+18]
  3791. E527:21DF   mov      es:[di+14],ax
  3792. E527:21E3   mov      ax,[si+1C]
  3793. E527:21E6   mov      es:[di+10],ax
  3794. E527:21EA   mov      ax,[si+1E]
  3795. E527:21ED   mov      es:[di+12],ax
  3796. E527:21F1   mov      al,[0051]
  3797. E527:21F5   inc      al
  3798. E527:21F7   mov      es:[di],al
  3799. E527:21FA   dec      al
  3800. E527:21FC   or       al,40
  3801. E527:21FE   mov      es:[di+18],al
  3802. E527:2202   clc      
  3803. E527:2203   pop      dx
  3804. E527:2204   pop      bx
  3805. E527:2205   ret      
  3806. E527:2206   lea      di,[di+18]
  3807. E527:2209   mov      ax,bx
  3808. E527:220B   stosw
  3809. E527:220C   add      di,04
  3810. E527:220F   mov      ax,dx
  3811. E527:2211   stosw
  3812. E527:2212   les      di,ss:[004C]
  3813. E527:2217   test     word ptr ss:[0105],1000
  3814. E527:221E   je       2223
  3815. E527:2220   add      di,07
  3816. E527:2223   push     si
  3817. E527:2224   push     di
  3818. E527:2225   mov      al,[0051]
  3819. E527:2229   inc      al
  3820. E527:222B   stosb
  3821. E527:222C   mov      cx,000B
  3822. E527:222F   rep      movsb
  3823. E527:2231   pop      di
  3824. E527:2232   pop      si
  3825. E527:2233   mov      ax,[si+1C]
  3826. E527:2236   mov      es:[di+1D],ax
  3827. E527:223A   mov      ax,[si+1E]
  3828. E527:223D   mov      es:[di+1F],ax
  3829. E527:2241   mov      al,[si+0B]
  3830. E527:2244   mov      es:[di+0C],ax
  3831. E527:2248   mov      ax,[si+16]
  3832. E527:224B   mov      es:[di+17],ax
  3833. E527:224F   mov      ax,[si+18]
  3834. E527:2252   mov      es:[di+19],ax
  3835. E527:2256   mov      ax,[si+1A]
  3836. E527:2259   mov      es:[di+1B],ax
  3837. E527:225D   ret      
  3838. E527:225E   lds      si,ss:[0042]
  3839. E527:2263   push     si
  3840. E527:2264   lea      si,[si+18]
  3841. E527:2267   lodsw
  3842. E527:2268   mov      bx,ax
  3843. E527:226A   add      si,04
  3844. E527:226D   lodsw
  3845. E527:226E   mov      dx,ax
  3846. E527:2270   inc      bx
  3847. E527:2271   pop      si
  3848. E527:2272   lodsb
  3849. E527:2273   dec      al
  3850. E527:2275   mov      [0051],al
  3851. E527:2279   call     14A7
  3852. E527:227C   ret      
  3853. E527:227D   push     ds
  3854. E527:227E   les      di,ss:[0042]
  3855. E527:2283   lds      si,[009E]
  3856. E527:2287   mov      word ptr es:[di+0E],0080
  3857. E527:228D   mov      byte ptr es:[di+20],00
  3858. E527:2292   mov      word ptr es:[di+0C],0000
  3859. E527:2298   mov      es:[di+19],si
  3860. E527:229C   mov      es:[di+1B],ds
  3861. E527:22A0   mov      ax,[si+04]
  3862. E527:22A3   or       ax,0080
  3863. E527:22A6   and      ax,FFDF
  3864. E527:22A9   mov      es:[di+18],al
  3865. E527:22AD   mov      ax,ss
  3866. E527:22AF   mov      ds,ax
  3867. E527:22B1   mov      si,0052
  3868. E527:22B4   lea      di,[di+01]
  3869. E527:22B7   mov      cx,000B
  3870. E527:22BA   rep      movsb
  3871. E527:22BC   pop      ds
  3872. E527:22BD   ret      
  3873. E527:22BE   push     ds
  3874. E527:22BF   xor      cx,cx
  3875. E527:22C1   and      word ptr ss:[0105],EFFF
  3876. E527:22C8   lds      si,ss:[00A6]
  3877. E527:22CD   cmp      byte ptr [si],FF
  3878. E527:22D0   jne      231A
  3879. E527:22D2   mov      cl,[si+06]
  3880. E527:22D5   add      si,07
  3881. E527:22D8   mov      ss:[00A6],si
  3882. E527:22DD   or       word ptr ss:[0105],1000
  3883. E527:22E4   cmp      cl,08
  3884. E527:22E7   jne      231A
  3885. E527:22E9   mov      ax,ss
  3886. E527:22EB   mov      es,ax
  3887. E527:22ED   mov      di,0068
  3888. E527:22F0   lodsb
  3889. E527:22F1   cmp      al,00
  3890. E527:22F3   je       22FD
  3891. E527:22F5   add      al,40
  3892. E527:22F7   stosb
  3893. E527:22F8   mov      al,3A
  3894. E527:22FA   stosb
  3895. E527:22FB   jmp      2306
  3896. E527:22FD   mov      al,[0050]
  3897. E527:2301   inc      al
  3898. E527:2303   mov      [si+FF],al
  3899. E527:2306   push     cx
  3900. E527:2307   mov      cx,0008
  3901. E527:230A   lodsb
  3902. E527:230B   stosb
  3903. E527:230C   loop     230A
  3904. E527:230E   mov      al,2E
  3905. E527:2310   stosb
  3906. E527:2311   mov      cx,0003
  3907. E527:2314   lodsb
  3908. E527:2315   stosb
  3909. E527:2316   loop     2314
  3910. E527:2318   jmp      235B
  3911. E527:231A   mov      ax,ss
  3912. E527:231C   mov      es,ax
  3913. E527:231E   mov      di,0068
  3914. E527:2321   lodsb
  3915. E527:2322   cmp      al,00
  3916. E527:2324   je       232E
  3917. E527:2326   add      al,40
  3918. E527:2328   stosb
  3919. E527:2329   mov      al,3A
  3920. E527:232B   stosb
  3921. E527:232C   jmp      2337
  3922. E527:232E   mov      al,[0050]
  3923. E527:2332   inc      al
  3924. E527:2334   mov      [si+FF],al
  3925. E527:2337   push     cx
  3926. E527:2338   mov      cx,0008
  3927. E527:233B   lodsb
  3928. E527:233C   call     42E7
  3929. E527:233F   je       2344
  3930. E527:2341   stosb
  3931. E527:2342   loop     233B
  3932. E527:2344   mov      si,ss:[00A6]
  3933. E527:2349   lea      si,[si+09]
  3934. E527:234C   mov      cx,0003
  3935. E527:234F   mov      al,2E
  3936. E527:2351   stosb
  3937. E527:2352   lodsb
  3938. E527:2353   call     42E7
  3939. E527:2356   je       235B
  3940. E527:2358   stosb
  3941. E527:2359   loop     2352
  3942. E527:235B   cmp      di,0069
  3943. E527:235F   jne      2362
  3944. E527:2361   dec      di
  3945. E527:2362   xor      al,al
  3946. E527:2364   stosb
  3947. E527:2365   pop      cx
  3948. E527:2366   mov      si,ss:[00A6]
  3949. E527:236B   mov      ss:[0042],si
  3950. E527:2370   mov      ss:[0044],ds
  3951. E527:2375   mov      word ptr ss:[00A6],0068
  3952. E527:237C   mov      ss:[00A8],es
  3953. E527:2381   pop      ds
  3954. E527:2382   ret      
  3955. E527:2383   push     cx
  3956. E527:2384   les      di,ss:[0042]
  3957. E527:2389   test     byte ptr es:[di+18],80
  3958. E527:238E   jne      240E
  3959. E527:2390   mov      al,es:[di]
  3960. E527:2393   dec      al
  3961. E527:2395   mov      [0051],al
  3962. E527:2399   push     di
  3963. E527:239A   push     es
  3964. E527:239B   call     14A7
  3965. E527:239E   mov      ss:[003E],di
  3966. E527:23A3   mov      ss:[0040],es
  3967. E527:23A8   pop      es
  3968. E527:23A9   pop      di
  3969. E527:23AA   call     2566
  3970. E527:23AD   jnb      23B2
  3971. E527:23AF   jmp      2463
  3972. E527:23B2   mov      dx,es:[di+19]
  3973. E527:23B6   mov      ss:[0109],dx
  3974. E527:23BB   mov      cx,es:[di+1B]
  3975. E527:23BF   mov      ss:[010D],cx
  3976. E527:23C4   mov      cx,es:[di+1D]
  3977. E527:23C8   mov      ss:[010B],cx
  3978. E527:23CD   mov      cx,es:[di+0E]
  3979. E527:23D1   cmp      bx,es:[di+12]
  3980. E527:23D5   ja       244A
  3981. E527:23D7   jb       23DF
  3982. E527:23D9   cmp      ax,es:[di+10]
  3983. E527:23DD   jnb      244A
  3984. E527:23DF   push     ax
  3985. E527:23E0   push     bx
  3986. E527:23E1   add      ax,cx
  3987. E527:23E3   adc      bx,00
  3988. E527:23E6   cmp      bx,es:[di+12]
  3989. E527:23EA   ja       23F4
  3990. E527:23EC   jb       23FA
  3991. E527:23EE   cmp      ax,es:[di+10]
  3992. E527:23F2   jbe      23FA
  3993. E527:23F4   sub      ax,es:[di+10]
  3994. E527:23F8   sub      cx,ax
  3995. E527:23FA   pop      bx
  3996. E527:23FB   pop      ax
  3997. E527:23FC   jcxz     244A
  3998. E527:23FE   call     2558
  3999. E527:2401   jb       2463
  4000. E527:2403   call     3E78
  4001. E527:2406   jb       2448
  4002. E527:2408   call     2596
  4003. E527:240B   jmp      2448
  4004. E527:240D   nop      
  4005. E527:240E   les      di,es:[di+19]
  4006. E527:2412   mov      [009E],di
  4007. E527:2416   mov      [00A0],es
  4008. E527:241A   mov      ax,ds
  4009. E527:241C   mov      es,ax
  4010. E527:241E   mov      bx,0088
  4011. E527:2421   mov      byte ptr es:[bx],1A
  4012. E527:2425   mov      byte ptr es:[bx+02],04
  4013. E527:242A   mov      ax,[004C]
  4014. E527:242D   mov      es:[bx+0E],ax
  4015. E527:2431   mov      ax,[004E]
  4016. E527:2434   mov      es:[bx+10],ax
  4017. E527:2438   mov      es:[bx+12],cx
  4018. E527:243C   call     1C58
  4019. E527:243F   mov      ax,es:[bx+12]
  4020. E527:2443   les      di,ss:[0042]
  4021. E527:2448   jnb      244E
  4022. E527:244A   mov      al,01
  4023. E527:244C   jmp      2463
  4024. E527:244E   mov      cx,es:[di+0E]
  4025. E527:2452   les      di,ss:[004C]
  4026. E527:2457   add      di,ax
  4027. E527:2459   sub      cx,ax
  4028. E527:245B   xor      al,al
  4029. E527:245D   jcxz     2463
  4030. E527:245F   rep      stosb
  4031. E527:2461   mov      al,03
  4032. E527:2463   pop      cx
  4033. E527:2464   ret      
  4034. E527:2465   push     cx
  4035. E527:2466   les      di,ss:[0042]
  4036. E527:246B   test     byte ptr es:[di+18],80
  4037. E527:2470   je       2475
  4038. E527:2472   jmp      2518
  4039. E527:2475   mov      al,es:[di]
  4040. E527:2478   dec      al
  4041. E527:247A   mov      [0051],al
  4042. E527:247E   push     di
  4043. E527:247F   push     es
  4044. E527:2480   call     14A7
  4045. E527:2483   mov      ss:[003E],di
  4046. E527:2488   mov      ss:[0040],es
  4047. E527:248D   pop      es
  4048. E527:248E   pop      di
  4049. E527:248F   mov      dx,es:[di+19]
  4050. E527:2493   cmp      dx,00
  4051. E527:2496   jne      24AF
  4052. E527:2498   lds      si,ss:[003E]
  4053. E527:249D   call     166B
  4054. E527:24A0   jnb      24A5
  4055. E527:24A2   jmp      2550
  4056. E527:24A5   mov      es:[di+19],ax
  4057. E527:24A9   mov      es:[di+1D],ax
  4058. E527:24AD   mov      dx,ax
  4059. E527:24AF   call     1176
  4060. E527:24B2   mov      es:[di+16],ax
  4061. E527:24B6   call     1137
  4062. E527:24B9   mov      es:[di+14],ax
  4063. E527:24BD   and      byte ptr es:[di+18],BF
  4064. E527:24C2   call     2566
  4065. E527:24C5   jnb      24CA
  4066. E527:24C7   jmp      2556
  4067. E527:24CA   mov      ss:[0109],dx
  4068. E527:24CF   mov      cx,es:[di+1B]
  4069. E527:24D3   mov      ss:[010D],cx
  4070. E527:24D8   mov      cx,es:[di+1D]
  4071. E527:24DC   mov      ss:[010B],cx
  4072. E527:24E1   mov      cx,es:[di+0E]
  4073. E527:24E5   call     2558
  4074. E527:24E8   jb       2556
  4075. E527:24EA   push     ax
  4076. E527:24EB   push     bx
  4077. E527:24EC   call     3EEA
  4078. E527:24EF   cmp      ax,cx
  4079. E527:24F1   pop      dx
  4080. E527:24F2   pop      bx
  4081. E527:24F3   jb       2550
  4082. E527:24F5   cmp      ax,cx
  4083. E527:24F7   jb       2550
  4084. E527:24F9   call     2596
  4085. E527:24FC   add      bx,ax
  4086. E527:24FE   adc      dx,00
  4087. E527:2501   cmp      dx,es:[di+12]
  4088. E527:2505   ja       250D
  4089. E527:2507   cmp      bx,es:[di+10]
  4090. E527:250B   jbe      2515
  4091. E527:250D   mov      es:[di+10],bx
  4092. E527:2511   mov      es:[di+12],dx
  4093. E527:2515   jmp      2550
  4094. E527:2517   nop      
  4095. E527:2518   les      di,es:[di+19]
  4096. E527:251C   mov      [009E],di
  4097. E527:2520   mov      [00A0],es
  4098. E527:2524   mov      ax,ds
  4099. E527:2526   mov      es,ax
  4100. E527:2528   mov      bx,0088
  4101. E527:252B   mov      byte ptr es:[bx],1A
  4102. E527:252F   mov      byte ptr es:[bx+02],08
  4103. E527:2534   call     3FD6
  4104. E527:2537   mov      ax,[004C]
  4105. E527:253A   mov      es:[bx+0E],ax
  4106. E527:253E   mov      ax,[004E]
  4107. E527:2541   mov      es:[bx+10],ax
  4108. E527:2545   mov      es:[bx+12],cx
  4109. E527:2549   call     1C58
  4110. E527:254C   mov      ax,es:[bx+12]
  4111. E527:2550   mov      al,00
  4112. E527:2552   jnb      2556
  4113. E527:2554   mov      al,01
  4114. E527:2556   pop      cx
  4115. E527:2557   ret      
  4116. E527:2558   les      di,ss:[004C]
  4117. E527:255D   push     di
  4118. E527:255E   add      di,cx
  4119. E527:2560   jnb      2564
  4120. E527:2562   mov      al,02
  4121. E527:2564   pop      di
  4122. E527:2565   ret      
  4123. E527:2566   push     dx
  4124. E527:2567   mov      ax,0080
  4125. E527:256A   mul      word ptr es:[di+0E]
  4126. E527:256E   mov      cx,dx
  4127. E527:2570   mul      word ptr es:[di+0C]
  4128. E527:2574   xchg     ax,cx
  4129. E527:2575   mov      bx,dx
  4130. E527:2577   mul      word ptr es:[di+0C]
  4131. E527:257B   jb       2592
  4132. E527:257D   add      bx,ax
  4133. E527:257F   jb       2592
  4134. E527:2581   mov      al,es:[di+20]
  4135. E527:2585   and      ax,007F
  4136. E527:2588   mul      word ptr es:[di+0E]
  4137. E527:258C   add      ax,cx
  4138. E527:258E   adc      bx,dx
  4139. E527:2590   jnb      2594
  4140. E527:2592   mov      al,01
  4141. E527:2594   pop      dx
  4142. E527:2595   ret      
  4143. E527:2596   push     ax
  4144. E527:2597   les      di,ss:[0042]
  4145. E527:259C   mov      ax,[010B]
  4146. E527:25A0   mov      es:[di+1D],ax
  4147. E527:25A4   mov      ax,[010D]
  4148. E527:25A8   mov      es:[di+1B],ax
  4149. E527:25AC   inc      byte ptr es:[di+20]
  4150. E527:25B0   jns      25BB
  4151. E527:25B2   and      byte ptr es:[di+20],7F
  4152. E527:25B7   inc      word ptr es:[di+0C]
  4153. E527:25BB   pop      ax
  4154. E527:25BC   ret      
  4155. E527:25BD   push     cx
  4156. E527:25BE   les      di,ss:[0042]
  4157. E527:25C3   cmp      word ptr es:[di+23],7F
  4158. E527:25C8   jbe      25CF
  4159. E527:25CA   mov      al,01
  4160. E527:25CC   stc      
  4161. E527:25CD   jmp      25E5
  4162. E527:25CF   mov      cx,0080
  4163. E527:25D2   mov      ax,es:[di+21]
  4164. E527:25D6   mov      dx,es:[di+23]
  4165. E527:25DA   div      cx
  4166. E527:25DC   mov      es:[di+0C],ax
  4167. E527:25E0   mov      es:[di+20],dl
  4168. E527:25E4   clc      
  4169. E527:25E5   pop      cx
  4170. E527:25E6   ret      
  4171. Int21_Fn3C Create file
  4172. E527:25E7   test     cx,FFD8
  4173. E527:25EB   jne      2630
  4174. E527:25ED   call     1C92
  4175. E527:25F0   jne      25FE
  4176. E527:25F2   mov      al,02
  4177. E527:25F4   call     29C5
  4178. E527:25F7   jb       262D
  4179. E527:25F9   mov      ax,bx
  4180. E527:25FB   jmp      2634
  4181. E527:25FD   nop      
  4182. E527:25FE   call     2CF3
  4183. E527:2601   jb       2634
  4184. E527:2603   call     2BB6
  4185. E527:2606   jnb      260F
  4186. E527:2608   call     2E43
  4187. E527:260B   stc      
  4188. E527:260C   jmp      2634
  4189. E527:260E   nop      
  4190. E527:260F   call     2D40
  4191. E527:2612   jb       262D
  4192. E527:2614   mov      word ptr es:[di+02],0002
  4193. E527:261A   and      word ptr es:[di+05],FFBF
  4194. E527:2620   mov      ax,[0046]
  4195. E527:2624   mov      word ptr ss:[0046],FFFF
  4196. E527:262B   jmp      2634
  4197. E527:262D   call     2E43
  4198. E527:2630   stc      
  4199. E527:2631   mov      ax,0005
  4200. E527:2634   ret      
  4201. Int21_Fn3D Open file
  4202. E527:2635   test     al,F8
  4203. E527:2637   je       263F
  4204. E527:2639   mov      ax,000C
  4205. E527:263C   stc      
  4206. E527:263D   jmp      269F
  4207. E527:263F   mov      [0048],al
  4208. E527:2643   mov      cx,0016
  4209. E527:2646   call     2A25
  4210. E527:2649   jnb      264E
  4211. E527:264B   jmp      269F
  4212. E527:264D   nop      
  4213. E527:264E   test     al,40
  4214. E527:2650   jne      2698
  4215. E527:2652   test     byte ptr es:[di+0B],10
  4216. E527:2657   jne      2692
  4217. E527:2659   mov      al,[0048]
  4218. E527:265D   cmp      al,00
  4219. E527:265F   je       2668
  4220. E527:2661   test     byte ptr es:[di+0B],01
  4221. E527:2666   jne      2692
  4222. E527:2668   push     bx
  4223. E527:2669   push     di
  4224. E527:266A   push     es
  4225. E527:266B   call     2CF3
  4226. E527:266E   pop      es
  4227. E527:266F   pop      di
  4228. E527:2670   pop      bx
  4229. E527:2671   jb       269F
  4230. E527:2673   call     2D40
  4231. E527:2676   jb       268F
  4232. E527:2678   mov      al,[0048]
  4233. E527:267C   xor      ah,ah
  4234. E527:267E   mov      es:[di+02],ax
  4235. E527:2682   mov      ax,[0046]
  4236. E527:2686   mov      word ptr ss:[0046],FFFF
  4237. E527:268D   jmp      269F
  4238. E527:268F   call     2E43
  4239. E527:2692   mov      ax,0005
  4240. E527:2695   stc      
  4241. E527:2696   jmp      269F
  4242. E527:2698   call     29C5
  4243. E527:269B   jb       269F
  4244. E527:269D   mov      ax,bx
  4245. E527:269F   ret      
  4246. Int21_Fn3E Close file
  4247. E527:26A0   call     2E21
  4248. E527:26A3   jnb      26A8
  4249. E527:26A5   jmp      272E
  4250. E527:26A8   test     word ptr es:[di+05],0080
  4251. E527:26AE   jne      2722
  4252. E527:26B0   push     bx
  4253. E527:26B1   mov      ax,es:[di+05]
  4254. E527:26B5   test     al,40
  4255. E527:26B7   jne      271F
  4256. E527:26B9   and      al,2F
  4257. E527:26BB   mov      [0051],al
  4258. E527:26BF   mov      bl,es:[di+1F]
  4259. E527:26C3   xor      bh,bh
  4260. E527:26C5   mov      ax,0020
  4261. E527:26C8   mul      bx
  4262. E527:26CA   mov      bx,ax
  4263. E527:26CC   mov      dx,es:[di+1D]
  4264. E527:26D0   push     di
  4265. E527:26D1   push     es
  4266. E527:26D2   mov      ax,ss
  4267. E527:26D4   mov      es,ax
  4268. E527:26D6   mov      di,016D
  4269. E527:26D9   mov      cx,0020
  4270. E527:26DC   call     0858
  4271. E527:26DF   mov      di,016D
  4272. E527:26E2   pop      ds
  4273. E527:26E3   pop      si
  4274. E527:26E4   push     si
  4275. E527:26E5   push     di
  4276. E527:26E6   lea      si,[si+20]
  4277. E527:26E9   mov      cx,000B
  4278. E527:26EC   repe     cmpsb
  4279. E527:26EE   pop      di
  4280. E527:26EF   pop      si
  4281. E527:26F0   stc      
  4282. E527:26F1   jne      271F
  4283. E527:26F3   or       byte ptr es:[di+0B],20
  4284. E527:26F8   push     di
  4285. E527:26F9   lea      di,[di+16]
  4286. E527:26FC   mov      ax,[si+0D]
  4287. E527:26FF   stosw
  4288. E527:2700   mov      ax,[si+0F]
  4289. E527:2703   stosw
  4290. E527:2704   mov      ax,[si+0B]
  4291. E527:2707   stosw
  4292. E527:2708   mov      ax,[si+11]
  4293. E527:270B   stosw
  4294. E527:270C   mov      ax,[si+13]
  4295. E527:270F   stosw
  4296. E527:2710   pop      di
  4297. E527:2711   mov      cx,0020
  4298. E527:2714   call     086E
  4299. E527:2717   call     0920
  4300. E527:271A   les      di,ss:[00A2]
  4301. E527:271F   pop      bx
  4302. E527:2720   jb       272E
  4303. E527:2722   mov      ss:[0046],bx
  4304. E527:2727   call     2E43
  4305. E527:272A   xor      ax,ax
  4306. E527:272C   jmp      2732
  4307. E527:272E   mov      ax,0006
  4308. E527:2731   stc      
  4309. E527:2732   ret      
  4310. Int21_Fn41 Delete file
  4311. E527:2733   mov      cx,0016
  4312. E527:2736   call     2A25
  4313. E527:2739   jb       2786
  4314. E527:273B   test     al,41
  4315. E527:273D   jne      277E
  4316. E527:273F   test     al,10
  4317. E527:2741   jne      2783
  4318. E527:2743   call     2CCA
  4319. E527:2746   je       277E
  4320. E527:2748   call     1722
  4321. E527:274B   push     dx
  4322. E527:274C   mov      dx,es:[di+1A]
  4323. E527:2750   or       dx,dx
  4324. E527:2752   je       2757
  4325. E527:2754   call     16A0
  4326. E527:2757   pop      dx
  4327. E527:2758   jb       277E
  4328. E527:275A   mov      ax,ss
  4329. E527:275C   mov      es,ax
  4330. E527:275E   mov      di,00AA
  4331. E527:2761   mov      byte ptr ss:[00AA],E5
  4332. E527:2767   push     dx
  4333. E527:2768   mov      ax,0020
  4334. E527:276B   mul      bx
  4335. E527:276D   mov      bx,dx
  4336. E527:276F   pop      dx
  4337. E527:2770   mov      cx,0001
  4338. E527:2773   call     3EEA
  4339. E527:2776   jb       277E
  4340. E527:2778   call     0920
  4341. E527:277B   clc      
  4342. E527:277C   jmp      2787
  4343. E527:277E   mov      ax,0005
  4344. E527:2781   jmp      2786
  4345. E527:2783   mov      ax,0003
  4346. E527:2786   stc      
  4347. E527:2787   ret      
  4348. Int21_Fn43 Set/query file attribute
  4349. E527:2788   push     ax
  4350. E527:2789   push     cx
  4351. E527:278A   mov      cx,0017
  4352. E527:278D   call     2A25
  4353. E527:2790   jb       279A
  4354. E527:2792   test     al,40
  4355. E527:2794   je       27A0
  4356. E527:2796   mov      ax,0005
  4357. E527:2799   stc      
  4358. E527:279A   add      sp,04
  4359. E527:279D   jmp      27FB
  4360. E527:279F   nop      
  4361. E527:27A0   pop      cx
  4362. E527:27A1   pop      ax
  4363. E527:27A2   test     al,40
  4364. E527:27A4   jne      27FB
  4365. E527:27A6   cmp      al,00
  4366. E527:27A8   jne      27BC
  4367. E527:27AA   mov      al,es:[di+0B]
  4368. E527:27AE   xor      ah,ah
  4369. E527:27B0   les      di,ss:[00AB]
  4370. E527:27B5   mov      es:[di+04],ax
  4371. E527:27B9   jmp      27FC
  4372. E527:27BB   nop      
  4373. E527:27BC   dec      al
  4374. E527:27BE   jne      27F8
  4375. E527:27C0   test     cx,FFD8
  4376. E527:27C4   jne      27D3
  4377. E527:27C6   test     byte ptr es:[di+0B],10
  4378. E527:27CB   je       27DA
  4379. E527:27CD   or       cx,0010
  4380. E527:27D1   jmp      27DA
  4381. E527:27D3   mov      ax,0005
  4382. E527:27D6   stc      
  4383. E527:27D7   jmp      27FC
  4384. E527:27D9   nop      
  4385. E527:27DA   mov      es:[di+0B],cl
  4386. E527:27DE   mov      cx,0020
  4387. E527:27E1   push     dx
  4388. E527:27E2   mov      ax,0020
  4389. E527:27E5   mul      bx
  4390. E527:27E7   mov      bx,dx
  4391. E527:27E9   pop      dx
  4392. E527:27EA   call     3EEA
  4393. E527:27ED   call     0920
  4394. E527:27F0   clc      
  4395. E527:27F1   jmp      27FC
  4396. E527:27F3   mov      ax,0002
  4397. E527:27F6   jmp      27FB
  4398. E527:27F8   mov      ax,0001
  4399. E527:27FB   stc      
  4400. E527:27FC   ret      
  4401. Int21_Fn45 Duplicate file handle
  4402. E527:27FD   call     2DC3
  4403. E527:2800   jb       2840
  4404. E527:2802   cmp      al,FF
  4405. E527:2804   jne      280C
  4406. E527:2806   stc      
  4407. E527:2807   mov      ax,0006
  4408. E527:280A   jmp      2840
  4409. E527:280C   xor      bx,bx
  4410. E527:280E   xor      ah,ah
  4411. E527:2810   mov      dx,ax
  4412. E527:2812   push     dx
  4413. E527:2813   call     2DC3
  4414. E527:2816   pop      dx
  4415. E527:2817   jb       2840
  4416. E527:2819   cmp      al,FF
  4417. E527:281B   je       2820
  4418. E527:281D   inc      bx
  4419. E527:281E   jmp      2812
  4420. E527:2820   mov      ss:[0046],bx
  4421. E527:2825   mov      bx,dx
  4422. E527:2827   call     2DE2
  4423. E527:282A   mov      bx,dx
  4424. E527:282C   call     2DF5
  4425. E527:282F   jb       2840
  4426. E527:2831   inc      word ptr es:[di]
  4427. E527:2834   mov      ax,[0046]
  4428. E527:2838   mov      word ptr ss:[0046],FFFF
  4429. E527:283F   clc      
  4430. E527:2840   ret      
  4431. Int21_Fn46 Redirect a handle
  4432. E527:2841   push     bx
  4433. E527:2842   push     cx
  4434. E527:2843   mov      bx,cx
  4435. E527:2845   call     26A0
  4436. E527:2848   pop      cx
  4437. E527:2849   pop      bx
  4438. E527:284A   call     2E21
  4439. E527:284D   jb       2871
  4440. E527:284F   call     2DC3
  4441. E527:2852   jnb      2859
  4442. E527:2854   mov      ax,0004
  4443. E527:2857   jmp      2871
  4444. E527:2859   mov      bl,al
  4445. E527:285B   xor      bh,bh
  4446. E527:285D   mov      ss:[0046],cx
  4447. E527:2862   call     2DE2
  4448. E527:2865   jb       2871
  4449. E527:2867   inc      word ptr es:[di]
  4450. E527:286A   mov      word ptr ss:[0046],FFFF
  4451. E527:2871   ret      
  4452. Int21_Fn4E Find first
  4453. E527:2872   call     2A25
  4454. E527:2875   jb       289B
  4455. E527:2877   push     di
  4456. E527:2878   push     es
  4457. E527:2879   mov      ax,ss
  4458. E527:287B   mov      ds,ax
  4459. E527:287D   mov      si,0052
  4460. E527:2880   les      di,[004C]
  4461. E527:2884   push     di
  4462. E527:2885   push     cx
  4463. E527:2886   mov      cx,0005
  4464. E527:2889   mov      al,[0051]
  4465. E527:288C   stosb
  4466. E527:288D   rep      movsw
  4467. E527:288F   movsb
  4468. E527:2890   pop      cx
  4469. E527:2891   mov      al,cl
  4470. E527:2893   stosb
  4471. E527:2894   pop      di
  4472. E527:2895   pop      ds
  4473. E527:2896   pop      si
  4474. E527:2897   call     2C2E
  4475. E527:289A   clc      
  4476. E527:289B   ret      
  4477. Int21_Fn4F Find next
  4478. E527:289C   call     2CA6
  4479. E527:289F   call     2AA3
  4480. E527:28A2   jb       28B3
  4481. E527:28A4   mov      ax,es
  4482. E527:28A6   mov      ds,ax
  4483. E527:28A8   mov      si,di
  4484. E527:28AA   les      di,ss:[004C]
  4485. E527:28AF   call     2C2E
  4486. E527:28B2   clc      
  4487. E527:28B3   ret      
  4488. Int21_Fn56 Rename/move file
  4489. E527:28B4   mov      cx,0016
  4490. E527:28B7   push     word ptr ss:[00A6]
  4491. E527:28BC   push     word ptr ss:[00A8]
  4492. E527:28C1   mov      ss:[00A6],di
  4493. E527:28C6   mov      ss:[00A8],es
  4494. E527:28CB   call     2A25
  4495. E527:28CE   pop      word ptr ss:[00A8]
  4496. E527:28D3   pop      word ptr ss:[00A6]
  4497. E527:28D8   jnb      292A
  4498. E527:28DA   cmp      ax,0002
  4499. E527:28DD   jne      292D
  4500. E527:28DF   call     2CCA
  4501. E527:28E2   je       2923
  4502. E527:28E4   mov      ax,ss
  4503. E527:28E6   mov      ds,ax
  4504. E527:28E8   mov      es,ax
  4505. E527:28EA   mov      si,0052
  4506. E527:28ED   mov      di,005D
  4507. E527:28F0   mov      cx,000B
  4508. E527:28F3   rep      movsb
  4509. E527:28F5   push     word ptr ss:[0051]
  4510. E527:28FA   push     dx
  4511. E527:28FB   mov      cx,0016
  4512. E527:28FE   call     2A25
  4513. E527:2901   jb       291C
  4514. E527:2903   test     al,40
  4515. E527:2905   je       290C
  4516. E527:2907   mov      ax,0005
  4517. E527:290A   jmp      291C
  4518. E527:290C   pop      cx
  4519. E527:290D   pop      ax
  4520. E527:290E   cmp      al,ss:[0051]
  4521. E527:2913   je       2931
  4522. E527:2915   mov      ax,0011
  4523. E527:2918   stc      
  4524. E527:2919   jmp      2988
  4525. E527:291B   nop      
  4526. E527:291C   add      sp,04
  4527. E527:291F   stc      
  4528. E527:2920   jmp      2988
  4529. E527:2922   nop      
  4530. E527:2923   mov      ax,0003
  4531. E527:2926   stc      
  4532. E527:2927   jmp      2988
  4533. E527:2929   nop      
  4534. E527:292A   mov      ax,0005
  4535. E527:292D   stc      
  4536. E527:292E   jmp      2988
  4537. E527:2930   nop      
  4538. E527:2931   call     2CCA
  4539. E527:2934   je       2923
  4540. E527:2936   cmp      cx,dx
  4541. E527:2938   je       2968
  4542. E527:293A   test     byte ptr es:[di+0B],10
  4543. E527:293F   jne      292A
  4544. E527:2941   mov      ax,bx
  4545. E527:2943   xchg     dx,cx
  4546. E527:2945   call     1843
  4547. E527:2948   jb       292A
  4548. E527:294A   push     bx
  4549. E527:294B   push     dx
  4550. E527:294C   push     di
  4551. E527:294D   mov      bx,0020
  4552. E527:2950   mul      bx
  4553. E527:2952   mov      bx,dx
  4554. E527:2954   mov      dx,cx
  4555. E527:2956   mov      di,00AA
  4556. E527:2959   mov      byte ptr ss:[00AA],E5
  4557. E527:295F   mov      cx,0001
  4558. E527:2962   call     3EEA
  4559. E527:2965   pop      di
  4560. E527:2966   pop      dx
  4561. E527:2967   pop      bx
  4562. E527:2968   push     di
  4563. E527:2969   mov      ax,ss
  4564. E527:296B   mov      ds,ax
  4565. E527:296D   mov      si,005D
  4566. E527:2970   mov      cx,000B
  4567. E527:2973   rep      movsb
  4568. E527:2975   pop      di
  4569. E527:2976   push     dx
  4570. E527:2977   mov      ax,0020
  4571. E527:297A   mul      bx
  4572. E527:297C   mov      bx,dx
  4573. E527:297E   pop      dx
  4574. E527:297F   mov      cx,0020
  4575. E527:2982   call     3EEA
  4576. E527:2985   call     0920
  4577. E527:2988   ret      
  4578. Int21_Fn57 Set/query file time/date
  4579. E527:2989   cmp      al,00
  4580. E527:298B   je       2997
  4581. E527:298D   cmp      al,01
  4582. E527:298F   je       29B1
  4583. E527:2991   mov      ax,0001
  4584. E527:2994   stc      
  4585. E527:2995   jmp      29C4
  4586. E527:2997   call     2E21
  4587. E527:299A   jb       29C4
  4588. E527:299C   lds      si,ss:[00AB]
  4589. E527:29A1   mov      ax,es:[di+0D]
  4590. E527:29A5   mov      [si+04],ax
  4591. E527:29A8   mov      ax,es:[di+0F]
  4592. E527:29AC   mov      [si+06],ax
  4593. E527:29AF   jmp      29C4
  4594. E527:29B1   call     2E21
  4595. E527:29B4   jb       29C4
  4596. E527:29B6   and      word ptr es:[di+05],FFBF
  4597. E527:29BC   mov      es:[di+0D],cx
  4598. E527:29C0   mov      es:[di+0F],dx
  4599. E527:29C4   ret      
  4600. E527:29C5   push     ds
  4601. E527:29C6   mov      [0048],al
  4602. E527:29C9   call     2CF3
  4603. E527:29CC   jb       2A23
  4604. E527:29CE   les      di,ss:[00A2]
  4605. E527:29D3   lds      si,ss:[009E]
  4606. E527:29D8   mov      al,[0048]
  4607. E527:29DC   xor      ah,ah
  4608. E527:29DE   mov      es:[di+02],ax
  4609. E527:29E2   mov      es:[di+07],si
  4610. E527:29E6   mov      es:[di+09],ds
  4611. E527:29EA   mov      ax,[si+04]
  4612. E527:29ED   or       ax,00C0
  4613. E527:29F0   and      ax,FFDF
  4614. E527:29F3   mov      es:[di+05],ax
  4615. E527:29F7   mov      ax,ss
  4616. E527:29F9   mov      ds,ax
  4617. E527:29FB   mov      si,0052
  4618. E527:29FE   push     di
  4619. E527:29FF   lea      di,[di+20]
  4620. E527:2A02   mov      cx,000B
  4621. E527:2A05   rep      movsb
  4622. E527:2A07   pop      di
  4623. E527:2A08   call     1137
  4624. E527:2A0B   mov      es:[di+0F],ax
  4625. E527:2A0F   call     1176
  4626. E527:2A12   mov      es:[di+0D],ax
  4627. E527:2A16   mov      bx,ss:[0046]
  4628. E527:2A1B   mov      word ptr ss:[0046],FFFF
  4629. E527:2A22   clc      
  4630. E527:2A23   pop      ds
  4631. E527:2A24   ret      
  4632. E527:2A25   lds      si,ss:[00A6]
  4633. E527:2A2A   lodsw
  4634. E527:2A2B   cmp      ah,3A
  4635. E527:2A2E   jne      2A38
  4636. E527:2A30   call     4326
  4637. E527:2A33   jb       2A91
  4638. E527:2A35   jmp      2A3E
  4639. E527:2A37   nop      
  4640. E527:2A38   dec      si
  4641. E527:2A39   dec      si
  4642. E527:2A3A   mov      al,[0050]
  4643. E527:2A3E   mov      [0051],al
  4644. E527:2A42   call     14A7
  4645. E527:2A45   jb       2A91
  4646. E527:2A47   mov      ss:[003E],di
  4647. E527:2A4C   mov      ss:[0040],es
  4648. E527:2A51   call     16BF
  4649. E527:2A54   mov      al,[si]
  4650. E527:2A56   cmp      al,ss:[0114]
  4651. E527:2A5B   jne      2A62
  4652. E527:2A5D   xor      dx,dx
  4653. E527:2A5F   inc      si
  4654. E527:2A60   mov      al,[si]
  4655. E527:2A62   call     42E7
  4656. E527:2A65   jne      2A6B
  4657. E527:2A67   cmp      al,2E
  4658. E527:2A69   jne      2A91
  4659. E527:2A6B   call     2B32
  4660. E527:2A6E   jb       2A91
  4661. E527:2A70   mov      ax,ss
  4662. E527:2A72   mov      ds,ax
  4663. E527:2A74   mov      si,0052
  4664. E527:2A77   call     1CB1
  4665. E527:2A7A   je       2A97
  4666. E527:2A7C   mov      si,0052
  4667. E527:2A7F   xor      bx,bx
  4668. E527:2A81   call     2AA3
  4669. E527:2A84   jb       2A8C
  4670. E527:2A86   mov      al,es:[di+0B]
  4671. E527:2A8A   jmp      2AA2
  4672. E527:2A8C   mov      ax,0002
  4673. E527:2A8F   jmp      2AA2
  4674. E527:2A91   mov      ax,0003
  4675. E527:2A94   stc      
  4676. E527:2A95   jmp      2AA2
  4677. E527:2A97   xor      dx,dx
  4678. E527:2A99   dec      dx
  4679. E527:2A9A   mov      bx,dx
  4680. E527:2A9C   mov      al,40
  4681. E527:2A9E   add      di,0A
  4682. E527:2AA1   clc      
  4683. E527:2AA2   ret      
  4684. E527:2AA3   mov      ax,ss
  4685. E527:2AA5   mov      es,ax
  4686. E527:2AA7   mov      di,016D
  4687. E527:2AAA   cmp      dx,00
  4688. E527:2AAD   jne      2ABD
  4689. E527:2AAF   push     si
  4690. E527:2AB0   push     ds
  4691. E527:2AB1   lds      si,ss:[003E]
  4692. E527:2AB6   cmp      bx,[si+09]
  4693. E527:2AB9   pop      ds
  4694. E527:2ABA   pop      si
  4695. E527:2ABB   jnb      2AEA
  4696. E527:2ABD   push     bx
  4697. E527:2ABE   push     cx
  4698. E527:2ABF   push     dx
  4699. E527:2AC0   mov      ax,bx
  4700. E527:2AC2   mov      cx,0020
  4701. E527:2AC5   mul      cx
  4702. E527:2AC7   mov      bx,dx
  4703. E527:2AC9   pop      dx
  4704. E527:2ACA   call     3E78
  4705. E527:2ACD   pop      cx
  4706. E527:2ACE   pop      bx
  4707. E527:2ACF   jb       2AEA
  4708. E527:2AD1   cmp      ax,0000
  4709. E527:2AD4   je       2AEA
  4710. E527:2AD6   cmp      byte ptr es:[di],00
  4711. E527:2ADA   je       2AEA
  4712. E527:2ADC   cmp      byte ptr es:[di],E5
  4713. E527:2AE0   je       2AE7
  4714. E527:2AE2   call     2AEF
  4715. E527:2AE5   je       2AEE
  4716. E527:2AE7   inc      bx
  4717. E527:2AE8   jmp      2AAA
  4718. E527:2AEA   stc      
  4719. E527:2AEB   mov      ax,0012
  4720. E527:2AEE   ret      
  4721. E527:2AEF   push     cx
  4722. E527:2AF0   push     si
  4723. E527:2AF1   push     di
  4724. E527:2AF2   push     ds
  4725. E527:2AF3   push     es
  4726. E527:2AF4   mov      al,es:[di+0B]
  4727. E527:2AF8   and      al,DE
  4728. E527:2AFA   cmp      cl,00
  4729. E527:2AFD   je       2B10
  4730. E527:2AFF   test     cl,08
  4731. E527:2B02   jne      2B10
  4732. E527:2B04   cmp      al,00
  4733. E527:2B06   je       2B1A
  4734. E527:2B08   test     al,cl
  4735. E527:2B0A   jne      2B16
  4736. E527:2B0C   or       al,01
  4737. E527:2B0E   jmp      2B2C
  4738. E527:2B10   cmp      cl,al
  4739. E527:2B12   je       2B1A
  4740. E527:2B14   jmp      2B0C
  4741. E527:2B16   cmp      cl,al
  4742. E527:2B18   jl       2B0C
  4743. E527:2B1A   mov      cx,000B
  4744. E527:2B1D   lodsb
  4745. E527:2B1E   cmp      al,3F
  4746. E527:2B20   jne      2B27
  4747. E527:2B22   inc      di
  4748. E527:2B23   xor      al,al
  4749. E527:2B25   jmp      2B2A
  4750. E527:2B27   scasb
  4751. E527:2B28   jne      2B2C
  4752. E527:2B2A   loop     2B1D
  4753. E527:2B2C   pop      es
  4754. E527:2B2D   pop      ds
  4755. E527:2B2E   pop      di
  4756. E527:2B2F   pop      si
  4757. E527:2B30   pop      cx
  4758. E527:2B31   ret      
  4759. E527:2B32   push     cx
  4760. E527:2B33   push     si
  4761. E527:2B34   push     ds
  4762. E527:2B35   mov      ax,ss
  4763. E527:2B37   mov      es,ax
  4764. E527:2B39   mov      di,0052
  4765. E527:2B3C   push     di
  4766. E527:2B3D   mov      al,20
  4767. E527:2B3F   mov      cx,000B
  4768. E527:2B42   rep      stosb
  4769. E527:2B44   pop      di
  4770. E527:2B45   push     si
  4771. E527:2B46   lodsw
  4772. E527:2B47   cmp      al,2E
  4773. E527:2B49   je       2B66
  4774. E527:2B4B   pop      si
  4775. E527:2B4C   xor      al,al
  4776. E527:2B4E   call     428B
  4777. E527:2B51   mov      cl,ss:[0114]
  4778. E527:2B56   cmp      [si],cl
  4779. E527:2B58   clc      
  4780. E527:2B59   jne      2BB2
  4781. E527:2B5B   cmp      al,01
  4782. E527:2B5D   jne      2B8C
  4783. E527:2B5F   mov      ax,0003
  4784. E527:2B62   stc      
  4785. E527:2B63   jmp      2BB2
  4786. E527:2B65   nop      
  4787. E527:2B66   cmp      ah,2E
  4788. E527:2B69   je       2B6E
  4789. E527:2B6B   dec      si
  4790. E527:2B6C   mov      ah,20
  4791. E527:2B6E   mov      cl,ss:[0114]
  4792. E527:2B73   cmp      [si],cl
  4793. E527:2B75   je       2B7C
  4794. E527:2B77   cmp      byte ptr [si],00
  4795. E527:2B7A   jne      2B4B
  4796. E527:2B7C   add      sp,02
  4797. E527:2B7F   mov      es:[di],ax
  4798. E527:2B82   mov      cl,ss:[0114]
  4799. E527:2B87   cmp      [si],cl
  4800. E527:2B89   clc      
  4801. E527:2B8A   jne      2BB2
  4802. E527:2B8C   inc      si
  4803. E527:2B8D   push     si
  4804. E527:2B8E   push     ds
  4805. E527:2B8F   xor      bx,bx
  4806. E527:2B91   mov      cx,0010
  4807. E527:2B94   push     es
  4808. E527:2B95   pop      ds
  4809. E527:2B96   mov      si,di
  4810. E527:2B98   call     2AA3
  4811. E527:2B9B   jb       2BAC
  4812. E527:2B9D   test     byte ptr es:[di+0B],10
  4813. E527:2BA2   je       2BAC
  4814. E527:2BA4   mov      dx,es:[di+1A]
  4815. E527:2BA8   pop      ds
  4816. E527:2BA9   pop      si
  4817. E527:2BAA   jmp      2B35
  4818. E527:2BAC   pop      ds
  4819. E527:2BAD   pop      si
  4820. E527:2BAE   mov      ax,0003
  4821. E527:2BB1   stc      
  4822. E527:2BB2   pop      ds
  4823. E527:2BB3   pop      si
  4824. E527:2BB4   pop      cx
  4825. E527:2BB5   ret      
  4826. E527:2BB6   push     cx
  4827. E527:2BB7   mov      cx,0017
  4828. E527:2BBA   call     2A25
  4829. E527:2BBD   pop      cx
  4830. E527:2BBE   jb       2C1B
  4831. E527:2BC0   test     al,17
  4832. E527:2BC2   jne      2C29
  4833. E527:2BC4   call     2CCA
  4834. E527:2BC7   je       2C29
  4835. E527:2BC9   push     dx
  4836. E527:2BCA   mov      dx,es:[di+1A]
  4837. E527:2BCE   or       cl,20
  4838. E527:2BD1   mov      es:[di+0B],cl
  4839. E527:2BD5   cmp      dx,00
  4840. E527:2BD8   je       2BDD
  4841. E527:2BDA   call     16A0
  4842. E527:2BDD   pop      dx
  4843. E527:2BDE   jb       2C29
  4844. E527:2BE0   xor      ax,ax
  4845. E527:2BE2   mov      es:[di+1A],ax
  4846. E527:2BE6   mov      es:[di+1C],ax
  4847. E527:2BEA   mov      es:[di+1E],ax
  4848. E527:2BEE   call     1137
  4849. E527:2BF1   mov      es:[di+18],ax
  4850. E527:2BF5   call     1176
  4851. E527:2BF8   mov      es:[di+16],ax
  4852. E527:2BFC   or       byte ptr es:[di+0B],20
  4853. E527:2C01   push     bx
  4854. E527:2C02   push     dx
  4855. E527:2C03   mov      ax,0020
  4856. E527:2C06   mul      bx
  4857. E527:2C08   mov      bx,dx
  4858. E527:2C0A   pop      dx
  4859. E527:2C0B   mov      cx,0020
  4860. E527:2C0E   call     3EEA
  4861. E527:2C11   pop      bx
  4862. E527:2C12   jb       2C29
  4863. E527:2C14   call     2CDF
  4864. E527:2C17   clc      
  4865. E527:2C18   jmp      2C2D
  4866. E527:2C1A   nop      
  4867. E527:2C1B   cmp      ax,0003
  4868. E527:2C1E   stc      
  4869. E527:2C1F   je       2C2D
  4870. E527:2C21   or       cl,20
  4871. E527:2C24   call     17C8
  4872. E527:2C27   jnb      2C2D
  4873. E527:2C29   mov      ax,0005
  4874. E527:2C2C   stc      
  4875. E527:2C2D   ret      
  4876. E527:2C2E   lea      di,[di+0D]
  4877. E527:2C31   mov      ax,bx
  4878. E527:2C33   stosw
  4879. E527:2C34   mov      ax,dx
  4880. E527:2C36   stosw
  4881. E527:2C37   add      di,04
  4882. E527:2C3A   and      ax,bx
  4883. E527:2C3C   cmp      ax,FFFF
  4884. E527:2C3F   je       2C88
  4885. E527:2C41   mov      al,[si+0B]
  4886. E527:2C44   stosb
  4887. E527:2C45   mov      ax,[si+16]
  4888. E527:2C48   stosw
  4889. E527:2C49   mov      ax,[si+18]
  4890. E527:2C4C   stosw
  4891. E527:2C4D   mov      ax,[si+1C]
  4892. E527:2C50   stosw
  4893. E527:2C51   mov      ax,[si+1E]
  4894. E527:2C54   stosw
  4895. E527:2C55   mov      cx,0008
  4896. E527:2C58   mov      ah,[si+0B]
  4897. E527:2C5B   test     ah,08
  4898. E527:2C5E   je       2C69
  4899. E527:2C60   mov      cx,000B
  4900. E527:2C63   lodsb
  4901. E527:2C64   stosb
  4902. E527:2C65   loop     2C63
  4903. E527:2C67   jmp      2C84
  4904. E527:2C69   lodsb
  4905. E527:2C6A   cmp      al,20
  4906. E527:2C6C   je       2C6F
  4907. E527:2C6E   stosb
  4908. E527:2C6F   loop     2C69
  4909. E527:2C71   cmp      byte ptr [si],20
  4910. E527:2C74   je       2C84
  4911. E527:2C76   mov      al,2E
  4912. E527:2C78   stosb
  4913. E527:2C79   mov      cx,0003
  4914. E527:2C7C   lodsb
  4915. E527:2C7D   cmp      al,20
  4916. E527:2C7F   je       2C84
  4917. E527:2C81   stosb
  4918. E527:2C82   loop     2C7C
  4919. E527:2C84   mov      al,00
  4920. E527:2C86   stosb
  4921. E527:2C87   ret      
  4922. E527:2C88   mov      al,40
  4923. E527:2C8A   stosb
  4924. E527:2C8B   mov      ax,[si+16]
  4925. E527:2C8E   stosw
  4926. E527:2C8F   mov      ax,[si+18]
  4927. E527:2C92   stosw
  4928. E527:2C93   mov      ax,0000
  4929. E527:2C96   stosw
  4930. E527:2C97   mov      ax,0000
  4931. E527:2C9A   stosw
  4932. E527:2C9B   mov      cx,0008
  4933. E527:2C9E   lodsb
  4934. E527:2C9F   stosb
  4935. E527:2CA0   loop     2C9E
  4936. E527:2CA2   mov      al,00
  4937. E527:2CA4   stosb
  4938. E527:2CA5   ret      
  4939. E527:2CA6   lds      si,ss:[004C]
  4940. E527:2CAB   mov      dx,[si+0F]
  4941. E527:2CAE   mov      bx,[si+0D]
  4942. E527:2CB1   inc      bx
  4943. E527:2CB2   mov      cl,[si+0C]
  4944. E527:2CB5   xor      ch,ch
  4945. E527:2CB7   lodsb
  4946. E527:2CB8   mov      [0051],al
  4947. E527:2CBC   call     14A7
  4948. E527:2CBF   mov      ss:[003E],di
  4949. E527:2CC4   mov      ss:[0040],es
  4950. E527:2CC9   ret      
  4951. E527:2CCA   push     cx
  4952. E527:2CCB   push     di
  4953. E527:2CCC   push     es
  4954. E527:2CCD   mov      ax,ss
  4955. E527:2CCF   mov      es,ax
  4956. E527:2CD1   mov      di,0052
  4957. E527:2CD4   mov      al,3F
  4958. E527:2CD6   mov      cx,000B
  4959. E527:2CD9   repne    scasb
  4960. E527:2CDB   pop      es
  4961. E527:2CDC   pop      di
  4962. E527:2CDD   pop      cx
  4963. E527:2CDE   ret      
  4964. E527:2CDF   push     ax
  4965. E527:2CE0   push     bx
  4966. E527:2CE1   push     cx
  4967. E527:2CE2   push     dx
  4968. E527:2CE3   push     si
  4969. E527:2CE4   push     di
  4970. E527:2CE5   push     ds
  4971. E527:2CE6   push     es
  4972. E527:2CE7   call     0920
  4973. E527:2CEA   pop      es
  4974. E527:2CEB   pop      ds
  4975. E527:2CEC   pop      di
  4976. E527:2CED   pop      si
  4977. E527:2CEE   pop      dx
  4978. E527:2CEF   pop      cx
  4979. E527:2CF0   pop      bx
  4980. E527:2CF1   pop      ax
  4981. E527:2CF2   ret      
  4982. E527:2CF3   push     cx
  4983. E527:2CF4   push     dx
  4984. E527:2CF5   xor      bx,bx
  4985. E527:2CF7   call     2DC3
  4986. E527:2CFA   jb       2D33
  4987. E527:2CFC   cmp      al,FF
  4988. E527:2CFE   je       2D03
  4989. E527:2D00   inc      bx
  4990. E527:2D01   jmp      2CF7
  4991. E527:2D03   mov      ss:[0046],bx
  4992. E527:2D08   xor      bx,bx
  4993. E527:2D0A   call     2DF5
  4994. E527:2D0D   jb       2D33
  4995. E527:2D0F   cmp      word ptr es:[di],00
  4996. E527:2D13   je       2D18
  4997. E527:2D15   inc      bx
  4998. E527:2D16   jmp      2D0A
  4999. E527:2D18   push     di
  5000. E527:2D19   mov      cx,0035
  5001. E527:2D1C   xor      ax,ax
  5002. E527:2D1E   rep      stosb
  5003. E527:2D20   pop      di
  5004. E527:2D21   inc      word ptr es:[di]
  5005. E527:2D24   mov      ss:[00A2],di
  5006. E527:2D29   mov      ss:[00A4],es
  5007. E527:2D2E   call     2DE2
  5008. E527:2D31   jmp      2D3D
  5009. E527:2D33   mov      word ptr ss:[0046],FFFF
  5010. E527:2D3A   mov      ax,0004
  5011. E527:2D3D   pop      dx
  5012. E527:2D3E   pop      cx
  5013. E527:2D3F   ret      
  5014. E527:2D40   push     bx
  5015. E527:2D41   push     dx
  5016. E527:2D42   mov      dx,es
  5017. E527:2D44   mov      ds,dx
  5018. E527:2D46   mov      dx,di
  5019. E527:2D48   les      bx,ss:[00A2]
  5020. E527:2D4D   mov      si,dx
  5021. E527:2D4F   lea      di,[bx+20]
  5022. E527:2D52   mov      cx,000B
  5023. E527:2D55   rep      movsb
  5024. E527:2D57   mov      si,dx
  5025. E527:2D59   mov      word ptr es:[bx+02],0002
  5026. E527:2D5F   test     byte ptr [si+0B],01
  5027. E527:2D63   je       2D6B
  5028. E527:2D65   mov      word ptr es:[bx+02],0000
  5029. E527:2D6B   mov      al,[si+0B]
  5030. E527:2D6E   mov      es:[bx+04],al
  5031. E527:2D72   mov      ax,[si+1A]
  5032. E527:2D75   mov      es:[bx+0B],ax
  5033. E527:2D79   mov      es:[bx+1B],ax
  5034. E527:2D7D   lea      si,[si+16]
  5035. E527:2D80   lea      di,[bx+0D]
  5036. E527:2D83   movsw
  5037. E527:2D84   movsw
  5038. E527:2D85   mov      si,dx
  5039. E527:2D87   lea      si,[si+1C]
  5040. E527:2D8A   lea      di,[bx+11]
  5041. E527:2D8D   movsw
  5042. E527:2D8E   movsw
  5043. E527:2D8F   mov      di,bx
  5044. E527:2D91   pop      dx
  5045. E527:2D92   pop      bx
  5046. E527:2D93   push     bx
  5047. E527:2D94   push     dx
  5048. E527:2D95   lds      si,ss:[003E]
  5049. E527:2D9A   call     176B
  5050. E527:2D9D   jb       2DC0
  5051. E527:2D9F   mov      es:[di+1D],dx
  5052. E527:2DA3   mov      es:[di+1F],bl
  5053. E527:2DA7   mov      es:[di+07],si
  5054. E527:2DAB   mov      es:[di+09],ds
  5055. E527:2DAF   lds      si,[si+12]
  5056. E527:2DB2   mov      ax,[si+04]
  5057. E527:2DB5   mov      al,[0051]
  5058. E527:2DB9   or       al,40
  5059. E527:2DBB   mov      es:[di+05],ax
  5060. E527:2DBF   clc      
  5061. E527:2DC0   pop      dx
  5062. E527:2DC1   pop      bx
  5063. E527:2DC2   ret      
  5064. E527:2DC3   cmp      bx,ss:[0129]
  5065. E527:2DC8   jnb      2DDD
  5066. E527:2DCA   cmp      bx,14
  5067. E527:2DCD   jnb      2DDD
  5068. E527:2DCF   push     es
  5069. E527:2DD0   mov      es,ss:[007E]
  5070. E527:2DD5   mov      al,es:[bx+18]
  5071. E527:2DD9   pop      es
  5072. E527:2DDA   clc      
  5073. E527:2DDB   jmp      2DE1
  5074. E527:2DDD   mov      ax,0006
  5075. E527:2DE0   stc      
  5076. E527:2DE1   ret      
  5077. E527:2DE2   push     es
  5078. E527:2DE3   mov      ax,bx
  5079. E527:2DE5   mov      bx,ss:[0046]
  5080. E527:2DEA   mov      es,ss:[007E]
  5081. E527:2DEF   mov      es:[bx+18],al
  5082. E527:2DF3   pop      es
  5083. E527:2DF4   ret      
  5084. E527:2DF5   les      di,ss:[0032]
  5085. E527:2DFA   cmp      di,FFFF
  5086. E527:2DFE   je       2E0F
  5087. E527:2E00   cmp      bx,es:[di+04]
  5088. E527:2E04   jb       2E16
  5089. E527:2E06   sub      bx,es:[di+04]
  5090. E527:2E0A   les      di,es:[di]
  5091. E527:2E0D   jmp      2DFA
  5092. E527:2E0F   mov      ax,0006
  5093. E527:2E12   stc      
  5094. E527:2E13   jmp      2E20
  5095. E527:2E15   nop      
  5096. E527:2E16   mov      ax,0035
  5097. E527:2E19   mul      bx
  5098. E527:2E1B   add      di,ax
  5099. E527:2E1D   add      di,06
  5100. E527:2E20   ret      
  5101. E527:2E21   push     bx
  5102. E527:2E22   push     dx
  5103. E527:2E23   call     2DC3
  5104. E527:2E26   jb       2E3D
  5105. E527:2E28   mov      bl,al
  5106. E527:2E2A   xor      bh,bh
  5107. E527:2E2C   call     2DF5
  5108. E527:2E2F   jb       2E40
  5109. E527:2E31   mov      ss:[00A2],di
  5110. E527:2E36   mov      ss:[00A4],es
  5111. E527:2E3B   jmp      2E40
  5112. E527:2E3D   mov      ax,0006
  5113. E527:2E40   pop      dx
  5114. E527:2E41   pop      bx
  5115. E527:2E42   ret      
  5116. E527:2E43   push     ax
  5117. E527:2E44   push     bx
  5118. E527:2E45   push     di
  5119. E527:2E46   push     es
  5120. E527:2E47   mov      bx,ss:[0046]
  5121. E527:2E4C   cmp      bx,FF
  5122. E527:2E4F   je       2E64
  5123. E527:2E51   call     2E21
  5124. E527:2E54   jb       2E64
  5125. E527:2E56   dec      word ptr es:[di]
  5126. E527:2E59   mov      bx,FFFF
  5127. E527:2E5C   call     2DE2
  5128. E527:2E5F   mov      [0046],ax
  5129. E527:2E63   clc      
  5130. E527:2E64   pop      es
  5131. E527:2E65   pop      di
  5132. E527:2E66   pop      bx
  5133. E527:2E67   pop      ax
  5134. E527:2E68   ret      
  5135. E527:2E69   xchg     ax,cx
  5136. E527:2E6A   mov      [CB2E],al
  5137. E527:2E6E   jmp      312F:092E
  5138. E527:2E74   das      
  5139. E527:2E75   pop      cx
  5140. E527:2E76   das      
  5141. E527:2E77   test     al,2F
  5142. Int21_Fn44 Device I/O control
  5143. E527:2E79   cmp      al,08
  5144. E527:2E7B   jnb      2E8C
  5145. E527:2E7D   cbw
  5146. E527:2E7E   mov      bp,ax
  5147. E527:2E80   shl      bp,1
  5148. E527:2E82   add      bp,2E69
  5149. E527:2E86   call     word ptr cs:[bp+00]
  5150. E527:2E8A   jmp      2E90
  5151. E527:2E8C   mov      ax,0001
  5152. E527:2E8F   stc      
  5153. E527:2E90   ret      
  5154. E527:2E91   call     2E21
  5155. E527:2E94   jb       2EA1
  5156. E527:2E96   mov      dx,es:[di+05]
  5157. E527:2E9A   lds      si,[00AB]
  5158. E527:2E9E   mov      [si+06],dx
  5159. E527:2EA1   ret      
  5160. E527:2EA2   call     2E21
  5161. E527:2EA5   jb       2ECA
  5162. E527:2EA7   test     word ptr es:[di+05],8000
  5163. E527:2EAD   jne      2EB5
  5164. E527:2EAF   mov      ax,0005
  5165. E527:2EB2   stc      
  5166. E527:2EB3   jmp      2ECA
  5167. E527:2EB5   or       dh,dh
  5168. E527:2EB7   je       2EBF
  5169. E527:2EB9   mov      ax,0001
  5170. E527:2EBC   stc
  5171. E527:2EBD   jmp      2ECA
  5172. E527:2EBF   mov      es:[di+05],dx
  5173. E527:2EC3   les      di,es:[di+07]
  5174. E527:2EC7   call     04D9
  5175. E527:2ECA   ret      
  5176. E527:2ECB   call     2E21
  5177. E527:2ECE   jb       2EE9
  5178. E527:2ED0   test     word ptr es:[di+05],8000
  5179. E527:2ED6   jne      2EDE
  5180. E527:2ED8   mov      ax,0001
  5181. E527:2EDB   stc      
  5182. E527:2EDC   jmp      2EE9
  5183. E527:2EDE   les      di,es:[di+07]
  5184. E527:2EE2   mov      al,03
  5185. E527:2EE4   xor      ah,ah
  5186. E527:2EE6   call     2FE3
  5187. E527:2EE9   ret      
  5188. E527:2EEA   call     2E21
  5189. E527:2EED   jb       2EE9
  5190. E527:2EEF   test     word ptr es:[di+05],8000
  5191. E527:2EF5   jne      2EDE
  5192. E527:2EF7   mov      ax,0001
  5193. E527:2EFA   stc      
  5194. E527:2EFB   jmp      2EE9
  5195. E527:2EFD   les      di,es:[di+07]
  5196. E527:2F01   mov      al,0C
  5197. E527:2F03   xor      ah,ah
  5198. E527:2F05   call     2FE3
  5199. E527:2F08   ret      
  5200. E527:2F09   cmp      bl,00
  5201. E527:2F0C   jne      2F14
  5202. E527:2F0E   mov      bl,[0050]
  5203. E527:2F12   inc      bl
  5204. E527:2F14   dec      bl
  5205. E527:2F16   mov      al,bl
  5206. E527:2F18   call     14A7
  5207. E527:2F1B   jnb      2F23
  5208. E527:2F1D   mov      ax,0005
  5209. E527:2F20   stc      
  5210. E527:2F21   jmp      2F30
  5211. E527:2F23   mov      ah,es:[di+01]
  5212. E527:2F27   les      di,es:[di+12]
  5213. E527:2F2B   mov      al,03
  5214. E527:2F2D   call     2FE3
  5215. E527:2F30   ret
  5216. E527:2F31   cmp      bl,00
  5217. E527:2F34   jne      2F3C
  5218. E527:2F36   mov      bl,[0050]
  5219. E527:2F3A   inc      bl
  5220. E527:2F3C   dec      bl
  5221. E527:2F3E   mov      al,bl
  5222. E527:2F40   call     14A7
  5223. E527:2F43   jnb      2F4B
  5224. E527:2F45   mov      ax,0005
  5225. E527:2F48   stc      
  5226. E527:2F49   jmp      2F58
  5227. E527:2F4B   mov      ah,es:[di+01]
  5228. E527:2F4F   les      di,es:[di+12]
  5229. E527:2F53   mov      al,0C
  5230. E527:2F55   call     2FE3
  5231. E527:2F58   ret      
  5232. E527:2F59   call     2E21
  5233. E527:2F5C   jb       2FA7
  5234. E527:2F5E   test     word ptr es:[di+05],8000
  5235. E527:2F64   je       2F91
  5236. E527:2F66   les      di,es:[di+07]
  5237. E527:2F6A   mov      [009E],di
  5238. E527:2F6E   mov      [00A0],es
  5239. E527:2F72   mov      bx,ds
  5240. E527:2F74   mov      es,bx
  5241. E527:2F76   mov      bx,0088
  5242. E527:2F79   mov      byte ptr es:[bx],04
  5243. E527:2F7D   mov      byte ptr es:[bx+02],06
  5244. E527:2F82   call     1C58
  5245. E527:2F85   test     word ptr es:[bx+03],0200
  5246. E527:2F8B   jne      2FA5
  5247. E527:2F8D   mov      al,FF
  5248. E527:2F8F   jmp      2FA7
  5249. E527:2F91   mov      bx,es:[di+11]
  5250. E527:2F95   cmp      bx,es:[di+15]
  5251. E527:2F99   jne      2F8D
  5252. E527:2F9B   mov      bx,es:[di+13]
  5253. E527:2F9F   cmp      bx,es:[di+17]
  5254. E527:2FA3   jne      2F8D
  5255. E527:2FA5   mov      al,00
  5256. E527:2FA7   ret      
  5257. E527:2FA8   call     2E21
  5258. E527:2FAB   jb       2FE2
  5259. E527:2FAD   test     word ptr es:[di+05],8000
  5260. E527:2FB3   je       2FDC
  5261. E527:2FB5   les      di,es:[di+07]
  5262. E527:2FB9   mov      [009E],di
  5263. E527:2FBD   mov      [00A0],es
  5264. E527:2FC1   mov      bx,ds
  5265. E527:2FC3   mov      es,bx
  5266. E527:2FC5   mov      bx,0088
  5267. E527:2FC8   mov      byte ptr es:[bx],04
  5268. E527:2FCC   mov      byte ptr es:[bx+02],0A
  5269. E527:2FD1   call     1C58
  5270. E527:2FD4   test     word ptr es:[bx+03],0200
  5271. E527:2FDA   jne      2FE0
  5272. E527:2FDC   mov      al,FF
  5273. E527:2FDE   jmp      2FE2
  5274. E527:2FE0   mov      al,00
  5275. E527:2FE2   ret      
  5276. E527:2FE3   test     word ptr es:[di+04],4000
  5277. E527:2FE9   jne      2FF1
  5278. E527:2FEB   mov      ax,0005
  5279. E527:2FEE   stc      
  5280. E527:2FEF   jmp      3023
  5281. E527:2FF1   mov      [009E],di
  5282. E527:2FF5   mov      [00A0],es
  5283. E527:2FF9   mov      bx,ds
  5284. E527:2FFB   mov      es,bx
  5285. E527:2FFD   mov      bx,0088
  5286. E527:3000   mov      byte ptr es:[bx],14
  5287. E527:3004   mov      es:[bx+01],ah
  5288. E527:3008   mov      es:[bx+02],al
  5289. E527:300C   mov      es:[bx+12],cx
  5290. E527:3010   lds      si,[00A6]
  5291. E527:3014   mov      es:[bx+0E],si
  5292. E527:3018   mov      es:[bx+10],ds
  5293. E527:301C   call     1C58
  5294. E527:301F   mov      ax,es:[bx+12]
  5295. E527:3023   ret      
  5296. E527:3024   add      di,0F
  5297. E527:3027   mov      bx,di
  5298. E527:3029   call     4345
  5299. E527:302C   xor      di,di
  5300. E527:302E   mov      ax,es
  5301. E527:3030   mov      bx,[0049]
  5302. E527:3034   sub      bx,ax
  5303. E527:3036   dec      bx
  5304. E527:3037   mov      es:[di+03],bx
  5305. E527:303B   mov      byte ptr es:[di],5A
  5306. E527:303F   mov      word ptr es:[di+01],0000
  5307. E527:3045   mov      [000A],ax
  5308. E527:3048   mov      byte ptr [004B],00
  5309. E527:304D   ret      
  5310. Int21_Fn48 Allocate memory
  5311. E527:304E   push     ss
  5312. E527:304F   pop      ds
  5313. E527:3050   push     cx
  5314. E527:3051   push     es
  5315. E527:3052   xor      ax,ax
  5316. E527:3054   mov      cx,FFFF
  5317. E527:3057   xor      dx,dx
  5318. E527:3059   mov      si,[000A]
  5319. E527:305D   mov      es,si
  5320. E527:305F   xor      si,si
  5321. E527:3061   jmp      3074
  5322. E527:3063   cmp      byte ptr es:[si],5A
  5323. E527:3067   je       30B9
  5324. E527:3069   push     ax
  5325. E527:306A   mov      ax,es
  5326. E527:306C   add      ax,es:[si+03]
  5327. E527:3070   inc      ax
  5328. E527:3071   mov      es,ax
  5329. E527:3073   pop      ax
  5330. E527:3074   cmp      byte ptr es:[si],4D
  5331. E527:3078   je       3080
  5332. E527:307A   cmp      byte ptr es:[si],5A
  5333. E527:307E   jne      30B3
  5334. E527:3080   cmp      word ptr es:[si+01],00
  5335. E527:3085   jne      3063
  5336. E527:3087   cmp      es:[si+03],ax
  5337. E527:308B   jbe      3091
  5338. E527:308D   mov      ax,es:[si+03]
  5339. E527:3091   cmp      es:[si+03],bx
  5340. E527:3095   jb       3063
  5341. E527:3097   cmp      byte ptr [004B],00
  5342. E527:309C   je       30C0
  5343. E527:309E   cmp      byte ptr [004B],02
  5344. E527:30A3   je       30AF
  5345. E527:30A5   cmp      es:[si+03],cx
  5346. E527:30A9   jnb      3063
  5347. E527:30AB   mov      cx,es:[si+03]
  5348. E527:30AF   mov      dx,es
  5349. E527:30B1   jmp      3063
  5350. E527:30B3   mov      ax,0007
  5351. E527:30B6   stc
  5352. E527:30B7   jmp      3119
  5353. E527:30B9   cmp      dx,00
  5354. E527:30BC   je       3105
  5355. E527:30BE   mov      es,dx
  5356. E527:30C0   mov      cx,es
  5357. E527:30C2   inc      cx
  5358. E527:30C3   mov      dx,es:[si+03]
  5359. E527:30C7   mov      ax,[007E]
  5360. E527:30CA   mov      es:[si+01],ax
  5361. E527:30CE   cmp      bx,dx
  5362. E527:30D0   je       30EE
  5363. E527:30D2   mov      byte ptr es:[si],4D
  5364. E527:30D6   mov      es:[si+03],bx
  5365. E527:30DA   mov      ax,es
  5366. E527:30DC   add      ax,bx
  5367. E527:30DE   inc      ax
  5368. E527:30DF   mov      es,ax
  5369. E527:30E1   sub      dx,bx
  5370. E527:30E3   dec      dx
  5371. E527:30E4   mov      es:[si+03],dx
  5372. E527:30E8   mov      word ptr es:[si+01],0000
  5373. E527:30EE   mov      byte ptr es:[si],4D
  5374. E527:30F2   mov      ax,es
  5375. E527:30F4   add      ax,es:[si+03]
  5376. E527:30F8   inc      ax
  5377. E527:30F9   cmp      ax,[0049]
  5378. E527:30FD   jne      3116
  5379. E527:30FF   mov      byte ptr es:[si],5A
  5380. E527:3103   jmp      3116
  5381. E527:3105   push     ds
  5382. E527:3106   lds      si,[00AB]
  5383. E527:310A   mov      bx,ax
  5384. E527:310C   mov      [si+02],bx
  5385. E527:310F   pop      ds
  5386. E527:3110   mov      ax,0008
  5387. E527:3113   stc      
  5388. E527:3114   jmp      3119
  5389. E527:3116   mov      ax,cx
  5390. E527:3118   clc      
  5391. E527:3119   pop      es
  5392. E527:311A   pop      cx
  5393. E527:311B   ret      
  5394. Int21_Fn49 Free alocated memory block
  5395. E527:311C   push     ss
  5396. E527:311D   pop      ds
  5397. E527:311E   mov      ax,es
  5398. E527:3120   dec      ax
  5399. E527:3121   mov      es,ax
  5400. E527:3123   xor      si,si
  5401. E527:3125   cmp      byte ptr es:[si],4D
  5402. E527:3129   je       3131
  5403. E527:312B   cmp      byte ptr es:[si],5A
  5404. E527:312F   jne      3139
  5405. E527:3131   mov      word ptr es:[si+01],0000
  5406. E527:3137   jmp      313D
  5407. E527:3139   mov      ax,0009
  5408. E527:313C   stc      
  5409. E527:313D   call     3249
  5410. E527:3140   ret      
  5411. Int21_Fn4A Shiring or expand memory block
  5412. E527:3141   push     ss
  5413. E527:3142   pop      ds
  5414. E527:3143   mov      ax,es
  5415. E527:3145   dec      ax
  5416. E527:3146   mov      es,ax
  5417. E527:3148   xor      si,si
  5418. E527:314A   cmp      byte ptr es:[si],4D
  5419. E527:314E   je       3159
  5420. E527:3150   cmp      byte ptr es:[si],5A
  5421. E527:3154   je       3159
  5422. E527:3156   jmp      31E3
  5423. E527:3159   mov      ax,[007E]
  5424. E527:315C   cmp      es:[si+01],ax
  5425. E527:3160   je       3165
  5426. E527:3162   jmp      31E3
  5427. E527:3164   nop      
  5428. E527:3165   mov      cx,es
  5429. E527:3167   cmp      es:[si+03],bx
  5430. E527:316B   ja       3172
  5431. E527:316D   jb       3198
  5432. E527:316F   jmp      31FF
  5433. E527:3172   mov      dx,es:[si+03]
  5434. E527:3176   mov      es:[si+03],bx
  5435. E527:317A   mov      byte ptr es:[si],4D
  5436. E527:317E   mov      ax,es
  5437. E527:3180   add      ax,bx
  5438. E527:3182   inc      ax
  5439. E527:3183   mov      es,ax
  5440. E527:3185   sub      dx,bx
  5441. E527:3187   dec      dx
  5442. E527:3188   mov      es:[si+03],dx
  5443. E527:318C   mov      word ptr es:[si+01],0000
  5444. E527:3192   mov      byte ptr es:[si],4D
  5445. E527:3196   jmp      31EE
  5446. E527:3198   mov      dx,es:[si+03]
  5447. E527:319C   cmp      byte ptr es:[si],5A
  5448. E527:31A0   je       31D1
  5449. E527:31A2   mov      ax,es
  5450. E527:31A4   add      ax,es:[si+03]
  5451. E527:31A8   inc      ax
  5452. E527:31A9   mov      es,ax
  5453. E527:31AB   cmp      byte ptr es:[si],5A
  5454. E527:31AF   je       31B7
  5455. E527:31B1   cmp      byte ptr es:[si],4D
  5456. E527:31B5   jne      31E8
  5457. E527:31B7   cmp      word ptr es:[si+01],00
  5458. E527:31BC   jne      31D1
  5459. E527:31BE   add      dx,es:[si+03]
  5460. E527:31C2   inc      dx
  5461. E527:31C3   cmp      dx,bx
  5462. E527:31C5   jb       319C
  5463. E527:31C7   mov      es,cx
  5464. E527:31C9   ja       3176
  5465. E527:31CB   mov      es:[si+03],dx
  5466. E527:31CF   jmp      31EE
  5467. E527:31D1   mov      bx,es:[si+03]
  5468. E527:31D5   push     ds
  5469. E527:31D6   lds      si,[00AB]
  5470. E527:31DA   mov      [si+02],bx
  5471. E527:31DD   pop      ds
  5472. E527:31DE   mov      ax,0008
  5473. E527:31E1   jmp      31EB
  5474. E527:31E3   mov      ax,0009
  5475. E527:31E6   jmp      31EB
  5476. E527:31E8   mov      ax,0007
  5477. E527:31EB   stc      
  5478. E527:31EC   jmp      3203
  5479. E527:31EE   mov      ax,es
  5480. E527:31F0   add      ax,es:[si+03]
  5481. E527:31F4   inc      ax
  5482. E527:31F5   cmp      ax,[0049]
  5483. E527:31F9   jne      31FF
  5484. E527:31FB   mov      byte ptr es:[si],5A
  5485. E527:31FF   mov      ax,cx
  5486. E527:3201   inc      ax
  5487. E527:3202   clc      
  5488. E527:3203   call     3249
  5489. E527:3206   ret      
  5490. E527:3207   push     ss
  5491. E527:3208   pop      ds
  5492. E527:3209   mov      ax,[007E]
  5493. E527:320C   mov      es,ax
  5494. E527:320E   xor      si,si
  5495. E527:3210   cmp      es:[si+16],ax
  5496. E527:3214   je       3245
  5497. E527:3216   mov      dx,[000A]
  5498. E527:321A   mov      es,dx
  5499. E527:321C   cmp      byte ptr es:[si],4D
  5500. E527:3220   je       3228
  5501. E527:3222   cmp      byte ptr es:[si],5A
  5502. E527:3226   jne      3241
  5503. E527:3228   cmp      es:[si+01],ax
  5504. E527:322C   jne      3234
  5505. E527:322E   mov      word ptr es:[si+01],0000
  5506. E527:3234   cmp      byte ptr es:[si],5A
  5507. E527:3238   je       3245
  5508. E527:323A   add      dx,es:[si+03]
  5509. E527:323E   inc      dx
  5510. E527:323F   jmp      321A
  5511. E527:3241   mov      ax,0007
  5512. E527:3244   stc
  5513. E527:3245   call     3249
  5514. E527:3248   ret
  5515. E527:3249   push     ax
  5516. E527:324A   push     ds
  5517. E527:324B   pushf
  5518. E527:324C   mov      ax,[000A]
  5519. E527:3250   mov      es,ax
  5520. E527:3252   xor      si,si
  5521. E527:3254   jmp      325F
  5522. E527:3256   mov      ax,es
  5523. E527:3258   add      ax,es:[si+03]
  5524. E527:325C   inc      ax
  5525. E527:325D   mov      es,ax
  5526. E527:325F   cmp      byte ptr es:[si],5A
  5527. E527:3263   je       32A9
  5528. E527:3265   cmp      byte ptr es:[si],4D
  5529. E527:3269   jne      32A0
  5530. E527:326B   cmp      word ptr es:[si+01],00
  5531. E527:3270   jne      3256
  5532. E527:3272   mov      ax,es
  5533. E527:3274   add      ax,es:[si+03]
  5534. E527:3278   inc      ax
  5535. E527:3279   mov      ds,ax
  5536. E527:327B   cmp      byte ptr [si],5A
  5537. E527:327E   je       3285
  5538. E527:3280   cmp      byte ptr [si],4D
  5539. E527:3283   jne      32A0
  5540. E527:3285   cmp      word ptr [si+01],00
  5541. E527:3289   jne      3256
  5542. E527:328B   mov      ax,[si+03]
  5543. E527:328E   inc      ax
  5544. E527:328F   add      es:[si+03],ax
  5545. E527:3293   mov      al,[si]
  5546. E527:3295   mov      es:[si],al
  5547. E527:3298   cmp      byte ptr es:[si],5A
  5548. E527:329C   je       32A9
  5549. E527:329E   jmp      3272
  5550. E527:32A0   popf
  5551. E527:32A1   pop      ds
  5552. E527:32A2   pop      ax
  5553. E527:32A3   mov      ax,0007
  5554. E527:32A6   stc      
  5555. E527:32A7   jmp      32AC
  5556. E527:32A9   popf
  5557. E527:32AA   pop      ds
  5558. E527:32AB   pop      ax
  5559. E527:32AC   ret      
  5560. E527:32AD   dec      bp
  5561. E527:32AE   inc      sp
  5562. E527:32AF   dec      di
  5563. E527:32B0   push     bx
  5564. INT_20 Terminate a program
  5565. E527:32B1   xor      ah,ah
  5566. E527:32B3   jmp      44DA
  5567. E527:32B6   sti      
  5568. E527:32B7   stc      
  5569. E527:32B8   retf     0002
  5570. E527:32BB   add      sp,06
  5571. E527:32BE   pop      ax
  5572. E527:32BF   pop      bx
  5573. E527:32C0   pop      cx
  5574. E527:32C1   pop      dx
  5575. E527:32C2   pop      si
  5576. E527:32C3   pop      di
  5577. E527:32C4   pop      bp
  5578. E527:32C5   pop      ds
  5579. E527:32C6   pop      es
  5580. E527:32C7   sti      
  5581. E527:32C8   stc      
  5582. E527:32C9   retf     0002
  5583. INT_27 Terminate and stay resident
  5584. E527:32CC   mov      ax,00C3
  5585. E527:32CF   mov      ds,ax
  5586. E527:32D1   pop      ax
  5587. E527:32D2   pop      ax
  5588. E527:32D3   mov      [007E],ax
  5589. E527:32D6   mov      ax,dx
  5590. E527:32D8   call     437F
  5591. E527:32DB   mov      dx,ax
  5592. E527:32DD   mov      ax,3100
  5593. E527:32E0   jmp      44DA
  5594. Int21_Fn25 Set interrupt vector
  5595. E527:32E3   push     ax
  5596. E527:32E4   push     di
  5597. E527:32E5   push     es
  5598. E527:32E6   xor      di,di
  5599. E527:32E8   mov      es,di
  5600. E527:32EA   xor      ah,ah
  5601. E527:32EC   shl      ax,1
  5602. E527:32EE   shl      ax,1
  5603. E527:32F0   mov      di,ax
  5604. E527:32F2   cli
  5605. E527:32F3   mov      es:[di],dx
  5606. E527:32F6   mov      es:[di+02],ds
  5607. E527:32FA   sti
  5608. E527:32FB   pop      es
  5609. E527:32FC   pop      di
  5610. E527:32FD   pop      ax
  5611. E527:32FE   ret
  5612. Int21_Fn26 Create PSP
  5613. E527:32FF   mov      ds,ss:[007E]
  5614. E527:3304   xor      si,si
  5615. E527:3306   mov      es,dx
  5616. E527:3308   mov      di,si
  5617. E527:330A   mov      cx,0100
  5618. E527:330D   rep      movsb
  5619. E527:330F   xor      di,di
  5620. E527:3311   mov      es:[di+16],ds
  5621. E527:3315   xor      si,si
  5622. E527:3317   mov      ds,si
  5623. E527:3319   mov      si,0088
  5624. E527:331C   lea      di,[di+0A]
  5625. E527:331F   mov      cx,0006
  5626. E527:3322   rep      movsw
  5627. E527:3324   ret      
  5628. Int21_Fn29 Parse filename
  5629. E527:3325   mov      ds,ss:[00A8]
  5630. E527:332A   mov      dl,al
  5631. E527:332C   xor      dh,dh
  5632. E527:332E   lodsb
  5633. E527:332F   cmp      al,20
  5634. E527:3331   je       332E
  5635. E527:3333   dec      si
  5636. E527:3334   test     dl,01
  5637. E527:3337   je       3344
  5638. E527:3339   lodsb
  5639. E527:333A   cmp      al,20
  5640. E527:333C   jb       3343
  5641. E527:333E   call     42E7
  5642. E527:3341   je       3339
  5643. E527:3343   dec      si
  5644. E527:3344   lodsw
  5645. E527:3345   cmp      ah,3A
  5646. E527:3348   jne      3358
  5647. E527:334A   cmp      al,00
  5648. E527:334C   je       3358
  5649. E527:334E   call     4326
  5650. E527:3351   jb       3373
  5651. E527:3353   inc      al
  5652. E527:3355   stosb
  5653. E527:3356   jmp      3362
  5654. E527:3358   dec      si
  5655. E527:3359   dec      si
  5656. E527:335A   test     dl,02
  5657. E527:335D   jne      3362
  5658. E527:335F   xor      al,al
  5659. E527:3361   stosb
  5660. E527:3362   call     428B
  5661. E527:3365   jb       3373
  5662. E527:3367   lds      bx,ss:[00AB]
  5663. E527:336C   mov      [bx+08],si
  5664. E527:336F   and      al,01
  5665. E527:3371   jmp      3375
  5666. E527:3373   mov      al,FF
  5667. E527:3375   ret      
  5668. Int21_Fn2E Set verify
  5669. E527:3376   cmp      al,01
  5670. E527:3378   ja       338A
  5671. E527:337A   je       3384
  5672. E527:337C   and      word ptr [0105],FBFF
  5673. E527:3382   jmp      338A
  5674. E527:3384   or       word ptr [0105],0400
  5675. E527:338A   ret      
  5676. E527:338B   inc      sp
  5677. E527:338C   dec      dx
  5678. E527:338D   dec      sp
  5679. E527:338E   dec      bp
  5680. Int21_Fn30 Get DOS version
  5681. E527:338F   push     si
  5682. E527:3390   push     di
  5683. E527:3391   push     ds
  5684. E527:3392   mov      si,cs
  5685. E527:3394   mov      ds,si
  5686. E527:3396   mov      si,338B
  5687. E527:3399   mov      cx,0004
  5688. E527:339C   repe     cmpsb
  5689. E527:339E   pop      ds
  5690. E527:339F   pop      di
  5691. E527:33A0   pop      si
  5692. E527:33A1   mov      ax,[0115]
  5693. E527:33A4   jne      33AA
  5694. E527:33A6   mov      [0115],bx
  5695. E527:33AA   ret      
  5696. Int21_Fn33 Set/query break
  5697. E527:33AB   cmp      al,01
  5698. E527:33AD   ja       33D4
  5699. E527:33AF   je       33BF
  5700. E527:33B1   xor      dl,dl
  5701. E527:33B3   test     word ptr [0105],0800
  5702. E527:33B9   je       33D4
  5703. E527:33BB   inc      dl
  5704. E527:33BD   jmp      33D4
  5705. E527:33BF   cmp      dl,01
  5706. E527:33C2   ja       33D4
  5707. E527:33C4   je       33CE
  5708. E527:33C6   and      word ptr [0105],F7FF
  5709. E527:33CC   jmp      33D4
  5710. E527:33CE   or       word ptr [0105],0800
  5711. E527:33D4   ret      
  5712. Int21_Fn35 Get interrupt vector
  5713. E527:33D5   push     ax
  5714. E527:33D6   xor      bx,bx
  5715. E527:33D8   mov      es,bx
  5716. E527:33DA   xor      ah,ah
  5717. E527:33DC   shl      ax,1
  5718. E527:33DE   shl      ax,1
  5719. E527:33E0   mov      bx,ax
  5720. E527:33E2   les      bx,es:[bx]
  5721. E527:33E5   pop      ax
  5722. E527:33E6   ret      
  5723. Int21_Fn4D Get program exit code
  5724. E527:33E7   mov      ax,[0082]
  5725. E527:33EA   ret      
  5726. Int21_Fn54 Get DOS verify switch
  5727. E527:33EB   xor      al,al
  5728. E527:33ED   test     word ptr [0105],0400
  5729. E527:33F3   je       33F7
  5730. E527:33F5   inc      al
  5731. E527:33F7   ret      
  5732. E527:33F8   db       FF
  5733. E527:33F9   db       FF
  5734. E527:33FA   db       FF
  5735. E527:33FB   inc      word ptr [si]
  5736. E527:33FD   or       byte ptr [bp+si],34
  5737. E527:3400   sbb      si,[si]
  5738. E527:3402   dec      si
  5739. E527:3403   push     bp
  5740. E527:3404   dec      sp
  5741. E527:3405   and      [bx+si],ah
  5742. E527:3407   and      [bx+si],ah
  5743. E527:3409   and      [bx+si+1E],dl
  5744. E527:340C   mov      ax,ss
  5745. E527:340E   mov      ds,ax
  5746. E527:3410   mov      [0101],bx
  5747. E527:3414   mov      [0103],es
  5748. E527:3418   pop      ds
  5749. E527:3419   pop      ax
  5750. E527:341A   retf     
  5751. E527:341B   push     ax
  5752. E527:341C   push     bx
  5753. E527:341D   push     di
  5754. E527:341E   push     ds
  5755. E527:341F   push     es
  5756. E527:3420   mov      ax,ss
  5757. E527:3422   mov      ds,ax
  5758. E527:3424   les      di,[0101]
  5759. E527:3428   mov      al,es:[di+02]
  5760. E527:342C   shl      al,1
  5761. E527:342E   cmp      al,1A
  5762. E527:3430   nop      
  5763. E527:3431   nop      
  5764. E527:3432   ja       343F
  5765. E527:3434   mov      bx,345F
  5766. E527:3437   nop      
  5767. E527:3438   xor      ah,ah
  5768. E527:343A   add      bx,ax
  5769. E527:343C   jmp      word ptr cs:[bx]
  5770. E527:343F   mov      ax,8003
  5771. E527:3442   jmp      3446
  5772. E527:3444   xor      ax,ax
  5773. E527:3446   or       ax,0100
  5774. E527:3449   mov      es:[di+03],ax
  5775. E527:344D   pop      es
  5776. E527:344E   pop      ds
  5777. E527:344F   pop      di
  5778. E527:3450   pop      bx
  5779. E527:3451   pop      ax
  5780. E527:3452   retf     
  5781. E527:3453   mov      word ptr es:[di+0E],3479
  5782. E527:3459   mov      es:[di+10],ds
  5783. E527:345D   jmp      3444
  5784. E527:345F   push     bx
  5785. E527:3460   xor      al,44
  5786. E527:3462   xor      al,44
  5787. E527:3464   xor      al,44
  5788. E527:3466   xor      al,44
  5789. E527:3468   xor      al,44
  5790. E527:346A   xor      al,44
  5791. E527:346C   xor      al,44
  5792. E527:346E   xor      al,44
  5793. E527:3470   xor      al,44
  5794. E527:3472   xor      al,44
  5795. E527:3474   xor      al,44
  5796. E527:3476   xor      al,44
  5797. E527:3478   xor      al,1E
  5798. E527:347A   mov      word ptr [0022],3A13
  5799. E527:3480   mov      [0024],cs
  5800. E527:3484   or       word ptr [0105],0080
  5801. E527:348A   inc      byte ptr [0111]
  5802. E527:348E   mov      ax,3D00
  5803. E527:3491   mov      dx,395A
  5804. E527:3494   nop      
  5805. E527:3495   push     cs
  5806. E527:3496   pop      ds
  5807. E527:3497   int      21
  5808. E527:3499   jb       34B6
  5809. E527:349B   mov      bx,ax
  5810. E527:349D   call     34DF
  5811. E527:34A0   jb       34B2
  5812. E527:34A2   call     3523
  5813. E527:34A5   jb       34AA
  5814. E527:34A7   call     3540
  5815. E527:34AA   mov      ax,ds
  5816. E527:34AC   mov      es,ax
  5817. E527:34AE   mov      ah,49
  5818. E527:34B0   int      21
  5819. E527:34B2   mov      ah,3E
  5820. E527:34B4   int      21
  5821. E527:34B6   and      word ptr ss:[0105],FF7F
  5822. E527:34BD   dec      byte ptr ss:[0111]
  5823. E527:34C2   pop      ds
  5824. E527:34C3   cmp      byte ptr [012B],20
  5825. E527:34C8   jbe      34CF
  5826. E527:34CA   mov      byte ptr [012B],20
  5827. E527:34CF   mov      al,[012B]
  5828. E527:34D2   dec      al
  5829. E527:34D4   je       34DE
  5830. E527:34D6   call     07AC
  5831. E527:34D9   jnb      34DE
  5832. E527:34DB   call     35E3
  5833. E527:34DE   ret      
  5834. E527:34DF   push     bx
  5835. E527:34E0   mov      ax,4202
  5836. E527:34E3   xor      cx,cx
  5837. E527:34E5   xor      dx,dx
  5838. E527:34E7   int      21
  5839. E527:34E9   mov      cx,ax
  5840. E527:34EB   or       dx,dx
  5841. E527:34ED   jne      351E
  5842. E527:34EF   call     437F
  5843. E527:34F2   inc      ax
  5844. E527:34F3   push     ax
  5845. E527:34F4   mov      ah,48
  5846. E527:34F6   mov      bx,FFFF
  5847. E527:34F9   int      21
  5848. E527:34FB   cmp      ax,0008
  5849. E527:34FE   pop      ax
  5850. E527:34FF   jne      351E
  5851. E527:3501   cmp      ax,bx
  5852. E527:3503   ja       351E
  5853. E527:3505   sub      bx,ax
  5854. E527:3507   dec      bx
  5855. E527:3508   push     ax
  5856. E527:3509   mov      ah,48
  5857. E527:350B   int      21
  5858. E527:350D   mov      es,ax
  5859. E527:350F   pop      bx
  5860. E527:3510   mov      ah,48
  5861. E527:3512   int      21
  5862. E527:3514   mov      ds,ax
  5863. E527:3516   xor      dx,dx
  5864. E527:3518   mov      ah,49
  5865. E527:351A   int      21
  5866. E527:351C   jmp      3521
  5867. E527:351E   call     35E3
  5868. E527:3521   pop      bx
  5869. E527:3522   ret      
  5870. E527:3523   push     cx
  5871. E527:3524   push     dx
  5872. E527:3525   mov      ax,4200
  5873. E527:3528   xor      cx,cx
  5874. E527:352A   xor      dx,dx
  5875. E527:352C   int      21
  5876. E527:352E   pop      dx
  5877. E527:352F   pop      cx
  5878. E527:3530   mov      ah,3F
  5879. E527:3532   int      21
  5880. E527:3534   jnb      353F
  5881. E527:3536   mov      dx,3965
  5882. E527:3539   nop      
  5883. E527:353A   mov      ah,09
  5884. E527:353C   int      21
  5885. E527:353E   stc      
  5886. E527:353F   ret      
  5887. E527:3540   push     bx
  5888. E527:3541   push     ds
  5889. E527:3542   mov      si,dx
  5890. E527:3544   push     ss
  5891. E527:3545   pop      es
  5892. E527:3546   jcxz     3569
  5893. E527:3548   call     356C
  5894. E527:354B   jb       3564
  5895. E527:354D   jcxz     3569
  5896. E527:354F   call     3598
  5897. E527:3552   jb       3564
  5898. E527:3554   shl      bx,1
  5899. E527:3556   add      bx,394E
  5900. E527:355A   call     word ptr cs:[bx]
  5901. E527:355D   jb       3569
  5902. E527:355F   call     35C3
  5903. E527:3562   jmp      3546
  5904. E527:3564   call     35D4
  5905. E527:3567   jmp      355F
  5906. E527:3569   pop      ds
  5907. E527:356A   pop      bx
  5908. E527:356B   ret      
  5909. E527:356C   mov      di,0052
  5910. E527:356F   jcxz     3596
  5911. E527:3571   lodsb
  5912. E527:3572   dec      cx
  5913. E527:3573   call     42E7
  5914. E527:3576   je       356F
  5915. E527:3578   mov      dx,cx
  5916. E527:357A   mov      cx,000B
  5917. E527:357D   stosb
  5918. E527:357E   dec      cx
  5919. E527:357F   je       358D
  5920. E527:3581   cmp      dx,00
  5921. E527:3584   je       358D
  5922. E527:3586   lodsb
  5923. E527:3587   dec      dx
  5924. E527:3588   call     42E7
  5925. E527:358B   jne      357D
  5926. E527:358D   mov      al,20
  5927. E527:358F   rep      stosb
  5928. E527:3591   mov      di,0052
  5929. E527:3594   mov      cx,dx
  5930. E527:3596   clc      
  5931. E527:3597   ret      
  5932. E527:3598   push     cx
  5933. E527:3599   push     si
  5934. E527:359A   push     ds
  5935. E527:359B   mov      ax,cs
  5936. E527:359D   mov      ds,ax
  5937. E527:359F   mov      si,390C
  5938. E527:35A2   nop      
  5939. E527:35A3   mov      bx,0006
  5940. E527:35A6   nop      
  5941. E527:35A7   cmp      bx,00
  5942. E527:35AA   je       35BD
  5943. E527:35AC   push     si
  5944. E527:35AD   push     di
  5945. E527:35AE   mov      cx,000B
  5946. E527:35B1   repe     cmpsb
  5947. E527:35B3   pop      di
  5948. E527:35B4   pop      si
  5949. E527:35B5   je       35BE
  5950. E527:35B7   dec      bx
  5951. E527:35B8   add      si,0B
  5952. E527:35BB   jmp      35A7
  5953. E527:35BD   stc      
  5954. E527:35BE   dec      bx
  5955. E527:35BF   pop      ds
  5956. E527:35C0   pop      si
  5957. E527:35C1   pop      cx
  5958. E527:35C2   ret      
  5959. E527:35C3   jcxz     35D3
  5960. E527:35C5   push     es
  5961. E527:35C6   mov      ax,ds
  5962. E527:35C8   mov      es,ax
  5963. E527:35CA   mov      di,si
  5964. E527:35CC   mov      al,0A
  5965. E527:35CE   repne    scasb
  5966. E527:35D0   mov      si,di
  5967. E527:35D2   pop      es
  5968. E527:35D3   ret      
  5969. E527:35D4   push     ds
  5970. E527:35D5   mov      ax,cs
  5971. E527:35D7   mov      ds,ax
  5972. E527:35D9   mov      ah,09
  5973. E527:35DB   mov      dx,39A8
  5974. E527:35DE   nop      
  5975. E527:35DF   int      21
  5976. E527:35E1   pop      ds
  5977. E527:35E2   ret      
  5978. E527:35E3   mov      ax,cs
  5979. E527:35E5   mov      ds,ax
  5980. E527:35E7   mov      ah,09
  5981. E527:35E9   mov      dx,3983
  5982. E527:35EC   nop      
  5983. E527:35ED   int      21
  5984. E527:35EF   stc      
  5985. E527:35F0   ret      
  5986. E527:35F1   call     356C
  5987. E527:35F4   jb       361B
  5988. E527:35F6   cmp      byte ptr es:[di],4F
  5989. E527:35FA   jne      361B
  5990. E527:35FC   inc      di
  5991. E527:35FD   cmp      byte ptr es:[di],4E
  5992. E527:3601   je       3621
  5993. E527:3603   cmp      byte ptr es:[di],46
  5994. E527:3607   jne      361B
  5995. E527:3609   inc      di
  5996. E527:360A   cmp      byte ptr es:[di],46
  5997. E527:360E   jne      361B
  5998. E527:3610   inc      di
  5999. E527:3611   cmp      byte ptr es:[di],20
  6000. E527:3615   jne      361B
  6001. E527:3617   mov      dl,00
  6002. E527:3619   jmp      362A
  6003. E527:361B   call     35D4
  6004. E527:361E   jmp      362F
  6005. E527:3620   nop      
  6006. E527:3621   inc      di
  6007. E527:3622   cmp      byte ptr es:[di],20
  6008. E527:3626   jne      361B
  6009. E527:3628   mov      dl,01
  6010. E527:362A   mov      ax,3301
  6011. E527:362D   int      21
  6012. E527:362F   ret      
  6013. E527:3630   call     356C
  6014. E527:3633   jb       3648
  6015. E527:3635   call     38CA
  6016. E527:3638   or       ax,ax
  6017. E527:363A   je       3648
  6018. E527:363C   cmp      ax,0063
  6019. E527:363F   ja       3648
  6020. E527:3641   mov      [012B],al
  6021. E527:3645   clc      
  6022. E527:3646   jmp      364B
  6023. E527:3648   call     35D4
  6024. E527:364B   ret      
  6025. E527:364C   call     356C
  6026. E527:364F   jb       366D
  6027. E527:3651   call     38CA
  6028. E527:3654   mov      bx,ax
  6029. E527:3656   mov      ax,38FF
  6030. E527:3659   mov      dx,FFFF
  6031. E527:365C   int      21
  6032. E527:365E   jnb      366D
  6033. E527:3660   mov      ax,cs
  6034. E527:3662   mov      ds,ax
  6035. E527:3664   mov      ah,09
  6036. E527:3666   mov      dx,39CD
  6037. E527:3669   nop      
  6038. E527:366A   int      21
  6039. E527:366C   stc      
  6040. E527:366D   ret      
  6041. E527:366E   push     cx
  6042. E527:366F   push     si
  6043. E527:3670   push     ds
  6044. E527:3671   push     es
  6045. E527:3672   call     367F
  6046. E527:3675   jb       367A
  6047. E527:3677   call     3717
  6048. E527:367A   pop      es
  6049. E527:367B   pop      ds
  6050. E527:367C   pop      si
  6051. E527:367D   pop      cx
  6052. E527:367E   ret      
  6053. E527:367F   push     si
  6054. E527:3680   mov      ax,3D00
  6055. E527:3683   mov      dx,si
  6056. E527:3685   int      21
  6057. E527:3687   jb       36FB
  6058. E527:3689   mov      bx,ax
  6059. E527:368B   xor      cx,cx
  6060. E527:368D   xor      dx,dx
  6061. E527:368F   mov      ax,4202
  6062. E527:3692   int      21
  6063. E527:3694   test     dx,FFF0
  6064. E527:3698   jne      36EF
  6065. E527:369A   call     437F
  6066. E527:369D   and      dx,000F
  6067. E527:36A1   mov      dh,dl
  6068. E527:36A3   shl      dh,1
  6069. E527:36A5   shl      dh,1
  6070. E527:36A7   shl      dh,1
  6071. E527:36A9   shl      dh,1
  6072. E527:36AB   or       dx,ax
  6073. E527:36AD   mov      ah,3E
  6074. E527:36AF   int      21
  6075. E527:36B1   mov      ax,4800
  6076. E527:36B4   mov      bx,FFFF
  6077. E527:36B7   int      21
  6078. E527:36B9   cmp      ax,0008
  6079. E527:36BC   jne      36FB
  6080. E527:36BE   cmp      dx,bx
  6081. E527:36C0   ja       36EF
  6082. E527:36C2   mov      ah,48
  6083. E527:36C4   int      21
  6084. E527:36C6   add      bx,ax
  6085. E527:36C8   mov      ss:[0123],bx
  6086. E527:36CD   mov      bx,018D
  6087. E527:36D0   mov      ss:[bx],ax
  6088. E527:36D3   mov      word ptr ss:[bx+02],0000
  6089. E527:36D9   mov      ax,ss
  6090. E527:36DB   mov      es,ax
  6091. E527:36DD   mov      dx,si
  6092. E527:36DF   mov      ax,4B03
  6093. E527:36E2   int      21
  6094. E527:36E4   jb       36FB
  6095. E527:36E6   mov      ax,es:[bx]
  6096. E527:36E9   mov      [0121],ax
  6097. E527:36ED   jmp      3715
  6098. E527:36EF   call     35E3
  6099. E527:36F2   jmp      3715
  6100. E527:36F4   nop      
  6101. E527:36F5   mov      ah,49
  6102. E527:36F7   mov      es,dx
  6103. E527:36F9   int      21
  6104. E527:36FB   and      word ptr ss:[0105],7FFF
  6105. E527:3702   push     dx
  6106. E527:3703   push     ds
  6107. E527:3704   mov      ax,cs
  6108. E527:3706   mov      ds,ax
  6109. E527:3708   mov      dx,39E4
  6110. E527:370B   nop      
  6111. E527:370C   mov      ah,09
  6112. E527:370E   int      21
  6113. E527:3710   pop      ds
  6114. E527:3711   pop      si
  6115. E527:3712   call     3819
  6116. E527:3715   pop      si
  6117. E527:3716   ret      
  6118. E527:3717   mov      ss:[011D],si
  6119. E527:371C   mov      ss:[011F],ds
  6120. E527:3721   mov      word ptr ss:[009E],0000
  6121. E527:3728   mov      ax,[0121]
  6122. E527:372C   mov      [00A0],ax
  6123. E527:3730   mov      ds,ax
  6124. E527:3732   xor      bx,bx
  6125. E527:3734   les      di,ss:[011D]
  6126. E527:3739   call     04B4
  6127. E527:373C   jnb      3741
  6128. E527:373E   jmp      3800
  6129. E527:3741   push     bx
  6130. E527:3742   push     ds
  6131. E527:3743   lds      bx,ss:[0096]
  6132. E527:3748   mov      ax,bx
  6133. E527:374A   call     437F
  6134. E527:374D   mov      bx,ds
  6135. E527:374F   add      ax,bx
  6136. E527:3751   pop      ds
  6137. E527:3752   pop      bx
  6138. E527:3753   cmp      ax,ss:[0123]
  6139. E527:3758   jb       3762
  6140. E527:375A   push     ds
  6141. E527:375B   call     35E3
  6142. E527:375E   pop      ds
  6143. E527:375F   jmp      3800
  6144. E527:3762   mov      ax,[0121]
  6145. E527:3766   mov      es,ax
  6146. E527:3768   xor      di,di
  6147. E527:376A   lds      bx,ss:[0096]
  6148. E527:376F   mov      dx,es:[di+04]
  6149. E527:3773   test     dx,8000
  6150. E527:3777   je       377F
  6151. E527:3779   call     04D9
  6152. E527:377C   jmp      37C9
  6153. E527:377E   nop      
  6154. E527:377F   mov      al,[0028]
  6155. E527:3783   mov      dx,ss:[001C]
  6156. E527:3788   push     ax
  6157. E527:3789   push     dx
  6158. E527:378A   call     0526
  6159. E527:378D   pop      dx
  6160. E527:378E   pop      ax
  6161. E527:378F   cmp      ss:[001C],dx
  6162. E527:3794   jbe      37BD
  6163. E527:3796   mov      ss:[001C],dx
  6164. E527:379B   mov      [0028],al
  6165. E527:379F   mov      ax,cs
  6166. E527:37A1   mov      ds,ax
  6167. E527:37A3   mov      dx,39F4
  6168. E527:37A6   nop      
  6169. E527:37A7   mov      ah,09
  6170. E527:37A9   int      21
  6171. E527:37AB   lds      si,ss:[011D]
  6172. E527:37B0   call     3819
  6173. E527:37B3   mov      ds,ss:[0121]
  6174. E527:37B8   xor      bx,bx
  6175. E527:37BA   jmp      3800
  6176. E527:37BC   nop      
  6177. E527:37BD   push     bx
  6178. E527:37BE   push     ds
  6179. E527:37BF   lds      bx,ss:[0096]
  6180. E527:37C4   call     0585
  6181. E527:37C7   pop      ds
  6182. E527:37C8   pop      bx
  6183. E527:37C9   mov      ax,[0010]
  6184. E527:37CD   mov      [bx],ax
  6185. E527:37CF   mov      ax,[0012]
  6186. E527:37D3   mov      [bx+02],ax
  6187. E527:37D6   mov      ss:[0010],bx
  6188. E527:37DB   mov      ss:[0012],ds
  6189. E527:37E0   mov      [bx+04],di
  6190. E527:37E3   mov      [bx+06],es
  6191. E527:37E6   add      bx,08
  6192. E527:37E9   cmp      word ptr es:[di],FFFF
  6193. E527:37EE   je       3800
  6194. E527:37F0   les      di,es:[di]
  6195. E527:37F3   mov      ss:[009E],di
  6196. E527:37F8   mov      ss:[009E],es
  6197. E527:37FD   jmp      3734
  6198. E527:3800   mov      ax,bx
  6199. E527:3802   call     437F
  6200. E527:3805   mov      bx,ds
  6201. E527:3807   add      bx,ax
  6202. E527:3809   sub      bx,ss:[0121]
  6203. E527:380E   mov      es,ss:[0121]
  6204. E527:3813   mov      ah,4A
  6205. E527:3815   int      21
  6206. E527:3817   clc      
  6207. E527:3818   ret      
  6208. E527:3819   mov      ah,02
  6209. E527:381B   lodsb
  6210. E527:381C   dec      cx
  6211. E527:381D   je       382D
  6212. E527:381F   cmp      al,00
  6213. E527:3821   je       382D
  6214. E527:3823   cmp      al,0D
  6215. E527:3825   je       382D
  6216. E527:3827   mov      dl,al
  6217. E527:3829   int      21
  6218. E527:382B   jmp      381B
  6219. E527:382D   mov      dl,0D
  6220. E527:382F   int      21
  6221. E527:3831   mov      dl,0A
  6222. E527:3833   int      21
  6223. E527:3835   stc      
  6224. E527:3836   ret      
  6225. E527:3837   push     cx
  6226. E527:3838   call     356C
  6227. E527:383B   jb       38A5
  6228. E527:383D   call     38CA
  6229. E527:3840   cmp      ax,0008
  6230. E527:3843   jb       38A5
  6231. E527:3845   je       38A8
  6232. E527:3847   cmp      ax,00FF
  6233. E527:384A   ja       38A5
  6234. E527:384C   push     cx
  6235. E527:384D   sub      ax,0008
  6236. E527:3850   push     ax
  6237. E527:3851   mov      cx,0035
  6238. E527:3854   mul      cx
  6239. E527:3856   add      ax,0006
  6240. E527:3859   call     437F
  6241. E527:385C   mov      bx,ax
  6242. E527:385E   mov      ah,48
  6243. E527:3860   int      21
  6244. E527:3862   mov      es,ax
  6245. E527:3864   pop      ax
  6246. E527:3865   jnb      386E
  6247. E527:3867   call     35E3
  6248. E527:386A   pop      cx
  6249. E527:386B   jmp      38A8
  6250. E527:386D   nop      
  6251. E527:386E   push     ax
  6252. E527:386F   mov      cl,04
  6253. E527:3871   shl      bx,cl
  6254. E527:3873   xor      di,di
  6255. E527:3875   mov      cx,bx
  6256. E527:3877   xor      al,al
  6257. E527:3879   rep      stosb
  6258. E527:387B   pop      ax
  6259. E527:387C   push     ds
  6260. E527:387D   push     si
  6261. E527:387E   lds      si,ss:[0032]
  6262. E527:3883   xor      di,di
  6263. E527:3885   mov      [si],di
  6264. E527:3887   mov      [si+02],es
  6265. E527:388A   pop      si
  6266. E527:388B   pop      ds
  6267. E527:388C   mov      word ptr es:[di],FFFF
  6268. E527:3891   mov      word ptr es:[di+02],FFFF
  6269. E527:3897   mov      es:[di+04],ax
  6270. E527:389B   add      ss:[0129],ax
  6271. E527:38A0   pop      cx
  6272. E527:38A1   pop      ax
  6273. E527:38A2   clc      
  6274. E527:38A3   jmp      38A9
  6275. E527:38A5   call     35D4
  6276. E527:38A8   pop      cx
  6277. E527:38A9   ret      
  6278. E527:38AA   mov      ss:[0119],si
  6279. E527:38AF   mov      ss:[011B],ds
  6280. E527:38B4   mov      dx,cx
  6281. E527:38B6   call     35C3
  6282. E527:38B9   dec      si
  6283. E527:38BA   cmp      byte ptr [si],0A
  6284. E527:38BD   jne      38C1
  6285. E527:38BF   inc      cx
  6286. E527:38C0   dec      si
  6287. E527:38C1   inc      si
  6288. E527:38C2   sub      dx,cx
  6289. E527:38C4   mov      ss:[0125],dx
  6290. E527:38C9   ret      
  6291. E527:38CA   push     cx
  6292. E527:38CB   mov      bx,000A
  6293. E527:38CE   xor      ch,ch
  6294. E527:38D0   xor      ax,ax
  6295. E527:38D2   mov      cl,es:[di]
  6296. E527:38D5   call     3902
  6297. E527:38D8   jb       3900
  6298. E527:38DA   mov      al,cl
  6299. E527:38DC   mov      cl,es:[di+01]
  6300. E527:38E0   cmp      cl,20
  6301. E527:38E3   je       3900
  6302. E527:38E5   mul      bl
  6303. E527:38E7   call     3902
  6304. E527:38EA   jb       3900
  6305. E527:38EC   add      ax,cx
  6306. E527:38EE   mov      cl,es:[di+02]
  6307. E527:38F2   cmp      cl,20
  6308. E527:38F5   je       3900
  6309. E527:38F7   mul      bx
  6310. E527:38F9   call     3902
  6311. E527:38FC   jb       3900
  6312. E527:38FE   add      ax,cx
  6313. E527:3900   pop      cx
  6314. E527:3901   ret      
  6315. E527:3902   sub      cl,30
  6316. E527:3905   jb       390B
  6317. E527:3907   cmp      cl,0A
  6318. E527:390A   cmc      
  6319. E527:390B   ret      
  6320. E527:390C   inc      dx
  6321. E527:390D   push     dx
  6322. E527:390E   inc      bp
  6323. E527:390F   inc      cx
  6324. E527:3910   dec      bx
  6325. E527:3911   and      [bx+si],ah
  6326. E527:3913   and      [bx+si],ah
  6327. E527:3915   and      [bx+si],ah
  6328. E527:3917   inc      dx
  6329. E527:3918   push     bp
  6330. E527:3919   inc      si
  6331. E527:391A   inc      si
  6332. E527:391B   inc      bp
  6333. E527:391C   push     dx
  6334. E527:391D   push     bx
  6335. E527:391E   and      [bx+si],ah
  6336. E527:3920   and      [bx+si],ah
  6337. E527:3922   inc      bx
  6338. E527:3923   dec      di
  6339. E527:3924   push     bp
  6340. E527:3925   dec      si
  6341. E527:3926   push     sp
  6342. E527:3927   push     dx
  6343. E527:3928   pop      cx
  6344. E527:3929   and      [bx+si],ah
  6345. E527:392B   and      [bx+si],ah
  6346. E527:392D   inc      sp
  6347. E527:392E   inc      bp
  6348. E527:392F   push     si
  6349. E527:3930   dec      cx
  6350. E527:3931   inc      bx
  6351. E527:3932   inc      bp
  6352. E527:3933   and      [bx+si],ah
  6353. E527:3935   and      [bx+si],ah
  6354. E527:3937   and      [bp+49],al
  6355. E527:393A   dec      sp
  6356. E527:393B   inc      bp
  6357. E527:393C   push     bx
  6358. E527:393D   and      [bx+si],ah
  6359. E527:393F   and      [bx+si],ah
  6360. E527:3941   and      [bx+si],ah
  6361. E527:3943   push     bx
  6362. E527:3944   dec      ax
  6363. E527:3945   inc      bp
  6364. E527:3946   dec      sp
  6365. E527:3947   dec      sp
  6366. E527:3948   and      [bx+si],ah
  6367. E527:394A   and      [bx+si],ah
  6368. E527:394C   and      [bx+si],ah
  6369. E527:394E   stosb
  6370. E527:394F   cmp      [bx],dh
  6371. E527:3951   cmp      [bp+36],ch
  6372. E527:3954   dec      sp
  6373. E527:3955   xor      ss:[35F1],dh
  6374. E527:395A   inc      bx
  6375. E527:395B   dec      di
  6376. E527:395C   dec      si
  6377. E527:395D   inc      si
  6378. E527:395E   dec      cx
  6379. E527:395F   inc      di
  6380. E527:3960   push     bx
  6381. E527:3962   pop      cx
  6382. E527:3963   push     bx
  6383. E527:3964   add      [bp+si+61],al
  6384. E527:3967   and      fs:[bx+72],ch
  6385. E527:396B   and      [bp+di+6F],ah
  6386. E527:396E   jb       39E2
  6387. E527:3970   jne      39E2
  6388. E527:3972   je       39D9
  6389. E527:3974   and      fs:[bp+di+4F],al
  6390. E527:3978   dec      si
  6391. E527:3979   inc      si
  6392. E527:397A   dec      cx
  6393. E527:397B   inc      di
  6394. E527:397C   push     bx
  6395. E527:397E   pop      cx
  6396. E527:397F   push     bx
  6397. E527:3980   or       ax,240A
  6398. E527:3983   inc      bx
  6399. E527:3984   outsw
  6400. E527:3985   outsb
  6401. E527:3986   imul     esp,[bx+75],69746172
  6402. E527:398E   outsw
  6403. E527:398F   outsb
  6404. E527:3990   and      [si+6F],dh
  6405. E527:3993   outsw
  6406. E527:3994   and      [si+61],ch
  6407. E527:3997   jb       3A00
  6408. E527:3999   and      gs:[bp+6F],ah
  6409. E527:399D   jb       39BF
  6410. E527:399F   insw
  6411. E527:39A0   insw
  6412. E527:39A2   outsw
  6413. E527:39A3   jb       3A1E
  6414. E527:39A5   or       ax,240A
  6415. E527:39A8   push     bp
  6416. E527:39A9   outsb
  6417. E527:39AA   jb       3A11
  6418. E527:39AC   arpl     [bx+67],bp
  6419. E527:39AF   outsb
  6420. E527:39B0   imul     di,[bp+si+65],2064
  6421. E527:39B5   arpl     [bx+6D],bp
  6422. E527:39B8   insw
  6423. E527:39B9   popa
  6424. E527:39BA   outsb
  6425. E527:39BB   and      fs:[bx+di+6E],ch
  6426. E527:39BF   and      [bp+di+4F],al
  6427. E527:39C2   dec      si
  6428. E527:39C3   inc      si
  6429. E527:39C4   dec      cx
  6430. E527:39C5   inc      di
  6431. E527:39C6   push     bx
  6432. E527:39C8   pop      cx
  6433. E527:39C9   push     bx
  6434. E527:39CA   or       ax,240A
  6435. E527:39CD   dec      cx
  6436. E527:39CE   outsb
  6437. E527:39CF   jbe      3A32
  6438. E527:39D1   insb
  6439. E527:39D2   imul     sp,[si+20],6F63
  6440. E527:39D7   jne      3A47
  6441. E527:39D9   je       3A4D
  6442. E527:39DB   jns      39FD
  6443. E527:39DD   arpl     [bx+64],bp
  6444. E527:39E0   or       ax,240A
  6445. E527:39E4   inc      dx
  6446. E527:39E5   popa
  6447. E527:39E6   and      fs:[bx+72],ch
  6448. E527:39EA   and      [di+69],ch
  6449. E527:39ED   jnb      3A62
  6450. E527:39EF   imul     bp,[bp+67],2420
  6451. E527:39F4   push     bx
  6452. E527:39F5   arpl     gs:[si+6F],si
  6453. E527:39F9   jb       3A1B
  6454. E527:39FB   jnb      3A66
  6455. E527:39FD   jpe      3A64
  6456. E527:39FF   and      [si+6F],dh
  6457. E527:3A02   outsw
  6458. E527:3A03   and      [si+61],ch
  6459. E527:3A06   jb       3A6F
  6460. E527:3A08   and      gs:[bx+di+6E],ch
  6461. E527:3A0C   and      [bp+69],ah
  6462. E527:3A0F   insb
  6463. E527:3A10   and      gs:[si],ah
  6464. E527:3A13   inc      bx
  6465. E527:3A14   cmp      bl,[si+00]
  6466. E527:3A17   add      [bx+si],al
  6467. E527:3A19   add      [bx+si],al
  6468. E527:3A1B   add      [bx+si],al
  6469. E527:3A1D   add      [bx+si],al
  6470. E527:3A1F   add      [bx+si],al
  6471. E527:3A21   add      [bx+si],al
  6472. E527:3A23   add      [bx+si],al
  6473. E527:3A25   add      [bx+si],al
  6474. E527:3A27   add      [bx+si],al
  6475. E527:3A29   add      [bx+si],al
  6476. E527:3A2B   add      [bx+si],al
  6477. E527:3A2D   add      [bx+si],al
  6478. E527:3A2F   add      [bx+si],al
  6479. E527:3A31   add      [bx+si],al
  6480. E527:3A33   add      [bx+si],al
  6481. E527:3A35   add      [bx+si],al
  6482. E527:3A37   add      [bx+si],al
  6483. E527:3A39   add      [bx+si],al
  6484. E527:3A3B   add      [bx+si],al
  6485. E527:3A3D   add      [bx+si],al
  6486. E527:3A3F   add      [bx+si],al
  6487. E527:3A41   add      [bx+si],al
  6488. E527:3A43   add      [bx+si],al
  6489. E527:3A45   add      [bx+si],al
  6490. E527:3A47   add      [bx+si],al
  6491. E527:3A49   add      [bx+si],al
  6492. E527:3A4B   add      [bx+si],al
  6493. E527:3A4D   add      [bx+si],al
  6494. E527:3A4F   add      [bx+si],al
  6495. E527:3A51   add      [bx+si],al
  6496. E527:3A53   add      [bx+si],al
  6497. E527:3A55   add      [bx+si],al
  6498. E527:3A57   add      bl,ah
  6499. Int21_Fn3F read file
  6500. E527:3A58   jcxz     3A62
  6501. E527:3A5A   call     2E21
  6502. E527:3A5D   jnb      3A68
  6503. E527:3A5F   jmp      3B15
  6504. E527:3A62   xor      ax,ax
  6505. E527:3A64   clc      
  6506. E527:3A65   jmp      3B15
  6507. E527:3A68   test     word ptr es:[di+05],8080
  6508. E527:3A6E   jne      3A76
  6509. E527:3A70   call     3D37
  6510. E527:3A73   jmp      3B15
  6511. E527:3A76   test     word ptr es:[di+05],0040
  6512. E527:3A7C   je       3A62
  6513. E527:3A7E   test     word ptr es:[di+05],0020
  6514. E527:3A84   jne      3A70
  6515. E527:3A86   test     word ptr es:[di+05],0003
  6516. E527:3A8C   je       3AE4
  6517. E527:3A8E   or       ch,ch
  6518. E527:3A90   je       3A94
  6519. E527:3A92   mov      cl,FF
  6520. E527:3A94   les      di,ss:[00A6]
  6521. E527:3A99   push     di
  6522. E527:3A9A   push     es
  6523. E527:3A9B   mov      di,03BF
  6524. E527:3A9E   mov      ss:[00A6],di
  6525. E527:3AA3   mov      ss:[00A8],ss
  6526. E527:3AA8   mov      es:[di],cl
  6527. E527:3AAB   call     0BD0
  6528. E527:3AAE   les      di,ss:[00A6]
  6529. E527:3AB3   mov      byte ptr es:[di],0A
  6530. E527:3AB7   mov      cx,0001
  6531. E527:3ABA   call     3C03
  6532. E527:3ABD   lds      si,ss:[00A6]
  6533. E527:3AC2   mov      cl,[si+01]
  6534. E527:3AC5   xor      ch,ch
  6535. E527:3AC7   inc      cx
  6536. E527:3AC8   pop      es
  6537. E527:3AC9   pop      di
  6538. E527:3ACA   add      si,02
  6539. E527:3ACD   mov      al,[si]
  6540. E527:3ACF   cmp      al,1A
  6541. E527:3AD1   je       3AE0
  6542. E527:3AD3   push     cx
  6543. E527:3AD4   rep      movsb
  6544. E527:3AD6   mov      byte ptr es:[di],0A
  6545. E527:3ADA   pop      ax
  6546. E527:3ADB   inc      ax
  6547. E527:3ADC   clc      
  6548. E527:3ADD   jmp      3B15
  6549. E527:3ADF   nop      
  6550. E527:3AE0   stosb
  6551. E527:3AE1   jmp      3A62
  6552. E527:3AE4   mov      dx,cx
  6553. E527:3AE6   push     cx
  6554. E527:3AE7   mov      cx,0001
  6555. E527:3AEA   call     3D37
  6556. E527:3AED   pop      cx
  6557. E527:3AEE   jb       3B15
  6558. E527:3AF0   dec      cx
  6559. E527:3AF1   lds      si,ss:[00A6]
  6560. E527:3AF6   lodsb
  6561. E527:3AF7   cmp      al,0D
  6562. E527:3AF9   je       3B11
  6563. E527:3AFB   cmp      al,1A
  6564. E527:3AFD   je       3B0B
  6565. E527:3AFF   jcxz     3B11
  6566. E527:3B01   inc      word ptr ss:[00A6]
  6567. E527:3B06   call     0E68
  6568. E527:3B09   jmp      3AE6
  6569. E527:3B0B   and      word ptr es:[di+05],FFBF
  6570. E527:3B11   sub      dx,cx
  6571. E527:3B13   mov      ax,dx
  6572. E527:3B15   ret      
  6573. Int21_Fn40 write file
  6574. E527:3B16   jcxz     3B2A
  6575. E527:3B18   call     2E21
  6576. E527:3B1B   jb       3B6A
  6577. E527:3B1D   test     word ptr es:[di+05],8080
  6578. E527:3B23   jne      3B30
  6579. E527:3B25   call     3C03
  6580. E527:3B28   jmp      3B6A
  6581. E527:3B2A   xor      ax,ax
  6582. E527:3B2C   clc      
  6583. E527:3B2D   jmp      3B6A
  6584. E527:3B2F   nop      
  6585. E527:3B30   test     word ptr es:[di+05],0020
  6586. E527:3B36   jne      3B25
  6587. E527:3B38   les      si,ss:[00A6]
  6588. E527:3B3D   mov      dx,cx
  6589. E527:3B3F   xor      ax,ax
  6590. E527:3B41   jcxz     3B6A
  6591. E527:3B43   lodsb    es:
  6592. E527:3B45   push     cx
  6593. E527:3B46   mov      cx,0001
  6594. E527:3B49   mov      [00AA],al
  6595. E527:3B4D   mov      word ptr ss:[00A6],00AA
  6596. E527:3B54   mov      ss:[00A8],ds
  6597. E527:3B59   call     0ECD
  6598. E527:3B5C   call     3C03
  6599. E527:3B5F   call     0E68
  6600. E527:3B62   pop      cx
  6601. E527:3B63   dec      cx
  6602. E527:3B64   jne      3B43
  6603. E527:3B66   sub      dx,cx
  6604. E527:3B68   mov      ax,dx
  6605. E527:3B6A   ret      
  6606. Int21_Fn42 Lseek
  6607. E527:3B6B   push     ax
  6608. E527:3B6C   call     2E21
  6609. E527:3B6F   pop      ax
  6610. E527:3B70   jb       3B82
  6611. E527:3B72   cmp      al,00
  6612. E527:3B74   je       3B85
  6613. E527:3B76   cmp      al,01
  6614. E527:3B78   je       3B90
  6615. E527:3B7A   cmp      al,02
  6616. E527:3B7C   je       3B9B
  6617. E527:3B7E   mov      ax,0001
  6618. E527:3B81   stc      
  6619. E527:3B82   jmp      3C02
  6620. E527:3B84   nop      
  6621. E527:3B85   and      cx,7FFF
  6622. E527:3B89   xor      ax,ax
  6623. E527:3B8B   mov      bx,ax
  6624. E527:3B8D   jmp      3BA3
  6625. E527:3B8F   nop      
  6626. E527:3B90   mov      ax,es:[di+15]
  6627. E527:3B94   mov      bx,es:[di+17]
  6628. E527:3B98   jmp      3BA3
  6629. E527:3B9A   nop      
  6630. E527:3B9B   mov      ax,es:[di+11]
  6631. E527:3B9F   mov      bx,es:[di+13]
  6632. E527:3BA3   add      ax,dx
  6633. E527:3BA5   adc      bx,cx
  6634. E527:3BA7   mov      es:[di+15],ax
  6635. E527:3BAB   mov      es:[di+17],bx
  6636. E527:3BAF   push     ax
  6637. E527:3BB0   push     ax
  6638. E527:3BB1   push     ds
  6639. E527:3BB2   push     si
  6640. E527:3BB3   lds      si,es:[di+07]
  6641. E527:3BB7   mov      ax,[si+02]
  6642. E527:3BBA   mov      cl,[si+04]
  6643. E527:3BBD   xor      ch,ch
  6644. E527:3BBF   inc      cl
  6645. E527:3BC1   mul      cx
  6646. E527:3BC3   mov      cx,ax
  6647. E527:3BC5   pop      si
  6648. E527:3BC6   pop      ds
  6649. E527:3BC7   pop      ax
  6650. E527:3BC8   mov      dx,bx
  6651. E527:3BCA   div      cx
  6652. E527:3BCC   mov      cx,ax
  6653. E527:3BCE   mov      ax,es:[di+0B]
  6654. E527:3BD2   mov      word ptr es:[di+19],0000
  6655. E527:3BD8   jcxz     3BF3
  6656. E527:3BDA   lds      si,ss:[003E]
  6657. E527:3BDF   mov      dx,ax
  6658. E527:3BE1   push     cx
  6659. E527:3BE2   call     15BE
  6660. E527:3BE5   pop      cx
  6661. E527:3BE6   jb       3BF3
  6662. E527:3BE8   cmp      ax,0FF8
  6663. E527:3BEB   jnb      3BF3
  6664. E527:3BED   inc      word ptr es:[di+19]
  6665. E527:3BF1   loop     3BDF
  6666. E527:3BF3   mov      es:[di+1B],ax
  6667. E527:3BF7   pop      ax
  6668. E527:3BF8   les      di,ss:[00AB]
  6669. E527:3BFD   mov      es:[di+06],bx
  6670. E527:3C01   clc      
  6671. E527:3C02   ret
  6672. E527:3C03   push     cx
  6673. E527:3C04   push     dx
  6674. E527:3C05   push     di
  6675. E527:3C06   push     ds
  6676. E527:3C07   push     es
  6677. E527:3C08   les      di,ss:[00A2]
  6678. E527:3C0D   mov      ax,es:[di+02]
  6679. E527:3C11   cmp      al,00
  6680. E527:3C13   jne      3C1C
  6681. E527:3C15   stc      
  6682. E527:3C16   mov      ax,0005
  6683. E527:3C19   jmp      3D31
  6684. E527:3C1C   test     word ptr es:[di+05],8080
  6685. E527:3C22   jne      3C9D
  6686. E527:3C24   and      word ptr es:[di+05],FFBF
  6687. E527:3C2A   mov      ax,es:[di+05]
  6688. E527:3C2E   and      al,2F
  6689. E527:3C30   mov      [0051],al
  6690. E527:3C34   lds      si,es:[di+07]
  6691. E527:3C38   mov      ss:[003E],si
  6692. E527:3C3D   mov      ss:[0040],ds
  6693. E527:3C42   mov      dx,es:[di+0B]
  6694. E527:3C46   cmp      dx,00
  6695. E527:3C49   jne      3C5A
  6696. E527:3C4B   call     166B
  6697. E527:3C4E   jb       3C95
  6698. E527:3C50   mov      es:[di+0B],ax
  6699. E527:3C54   mov      es:[di+1B],ax
  6700. E527:3C58   mov      dx,ax
  6701. E527:3C5A   call     1176
  6702. E527:3C5D   mov      es:[di+0D],ax
  6703. E527:3C61   call     1137
  6704. E527:3C64   mov      es:[di+0F],ax
  6705. E527:3C68   mov      ss:[0109],dx
  6706. E527:3C6D   mov      ax,es:[di+19]
  6707. E527:3C71   mov      [010D],ax
  6708. E527:3C75   mov      ax,es:[di+1B]
  6709. E527:3C79   mov      [010B],ax
  6710. E527:3C7D   mov      ax,es:[di+15]
  6711. E527:3C81   mov      bx,es:[di+17]
  6712. E527:3C85   les      di,ss:[00A6]
  6713. E527:3C8A   call     3EEA
  6714. E527:3C8D   jb       3C97
  6715. E527:3C8F   call     3F64
  6716. E527:3C92   jmp      3D31
  6717. E527:3C95   xor      ax,ax
  6718. E527:3C97   jmp      3D31
  6719. E527:3C9A   jmp      3D2F
  6720. E527:3C9D   jcxz     3C9A
  6721. E527:3C9F   les      di,es:[di+07]
  6722. E527:3CA3   call     1D17
  6723. E527:3CA6   cmp      cx,01
  6724. E527:3CA9   jne      3CD7
  6725. E527:3CAB   test     word ptr es:[di+04],0010
  6726. E527:3CB1   je       3CD7
  6727. E527:3CB3   mov      ax,ss
  6728. E527:3CB5   mov      es,ax
  6729. E527:3CB7   mov      bx,0088
  6730. E527:3CBA   mov      byte ptr es:[bx],1A
  6731. E527:3CBE   mov      byte ptr es:[bx+02],08
  6732. E527:3CC3   call     3FD6
  6733. E527:3CC6   push     dx
  6734. E527:3CC7   push     si
  6735. E527:3CC8   push     ds
  6736. E527:3CC9   lds      si,ss:[00A6]
  6737. E527:3CCE   lodsb
  6738. E527:3CCF   int      29
  6739. E527:3CD1   pop      ds
  6740. E527:3CD2   pop      si
  6741. E527:3CD3   pop      dx
  6742. E527:3CD4   jmp      3D31
  6743. E527:3CD6   nop      
  6744. E527:3CD7   mov      ss:[009E],di
  6745. E527:3CDC   mov      ss:[00A0],es
  6746. E527:3CE1   mov      ax,ss
  6747. E527:3CE3   mov      es,ax
  6748. E527:3CE5   mov      bx,0088
  6749. E527:3CE8   mov      byte ptr es:[bx],1A
  6750. E527:3CEC   mov      byte ptr es:[bx+02],08
  6751. E527:3CF1   call     3FD6
  6752. E527:3CF4   mov      ax,[00A6]
  6753. E527:3CF8   mov      es:[bx+0E],ax
  6754. E527:3CFC   mov      ax,[00A8]
  6755. E527:3D00   mov      es:[bx+10],ax
  6756. E527:3D04   mov      dx,0008
  6757. E527:3D07   mov      es:[bx+12],cx
  6758. E527:3D0B   push     cx
  6759. E527:3D0C   push     dx
  6760. E527:3D0D   call     1C58
  6761. E527:3D10   pop      dx
  6762. E527:3D11   pop      cx
  6763. E527:3D12   jb       3D31
  6764. E527:3D14   test     word ptr es:[bx+03],0200
  6765. E527:3D1A   je       3D29
  6766. E527:3D1C   sub      cx,es:[bx+12]
  6767. E527:3D20   jcxz     3D29
  6768. E527:3D22   dec      dx
  6769. E527:3D23   jne      3D07
  6770. E527:3D25   call     41D8
  6771. E527:3D28   stc      
  6772. E527:3D29   mov      ax,es:[bx+12]
  6773. E527:3D2D   jmp      3D31
  6774. E527:3D2F   xor      ax,ax
  6775. E527:3D31   pop      es
  6776. E527:3D32   pop      ds
  6777. E527:3D33   pop      di
  6778. E527:3D34   pop      dx
  6779. E527:3D35   pop      cx
  6780. E527:3D36   ret      
  6781. E527:3D37   push     cx
  6782. E527:3D38   push     dx
  6783. E527:3D39   push     di
  6784. E527:3D3A   push     ds
  6785. E527:3D3B   push     es
  6786. E527:3D3C   les      di,ss:[00A2]
  6787. E527:3D41   mov      ax,es:[di+02]
  6788. E527:3D45   cmp      al,01
  6789. E527:3D47   jne      3D50
  6790. E527:3D49   stc      
  6791. E527:3D4A   mov      ax,0005
  6792. E527:3D4D   jmp      3E15
  6793. E527:3D50   test     word ptr es:[di+05],8080
  6794. E527:3D56   jne      3DBE
  6795. E527:3D58   mov      ax,es:[di+05]
  6796. E527:3D5C   and      al,2F
  6797. E527:3D5E   mov      [0051],al
  6798. E527:3D62   lds      si,es:[di+07]
  6799. E527:3D66   mov      ss:[003E],si
  6800. E527:3D6B   mov      ss:[0040],ds
  6801. E527:3D70   mov      dx,es:[di+0B]
  6802. E527:3D74   mov      ss:[0109],dx
  6803. E527:3D79   mov      ax,es:[di+19]
  6804. E527:3D7D   mov      [010D],ax
  6805. E527:3D81   mov      ax,es:[di+1B]
  6806. E527:3D85   mov      [010B],ax
  6807. E527:3D89   mov      ax,es:[di+15]
  6808. E527:3D8D   mov      bx,es:[di+17]
  6809. E527:3D91   push     ax
  6810. E527:3D92   push     bx
  6811. E527:3D93   add      ax,cx
  6812. E527:3D95   adc      bx,00
  6813. E527:3D98   cmp      bx,es:[di+13]
  6814. E527:3D9C   ja       3DA6
  6815. E527:3D9E   jb       3DAC
  6816. E527:3DA0   cmp      ax,es:[di+11]
  6817. E527:3DA4   jbe      3DAC
  6818. E527:3DA6   sub      ax,es:[di+11]
  6819. E527:3DAA   sub      cx,ax
  6820. E527:3DAC   pop      bx
  6821. E527:3DAD   pop      ax
  6822. E527:3DAE   les      di,ss:[00A6]
  6823. E527:3DB3   call     3E78
  6824. E527:3DB6   jb       3E15
  6825. E527:3DB8   call     3F64
  6826. E527:3DBB   jmp      3E15
  6827. E527:3DBD   nop      
  6828. E527:3DBE   les      di,es:[di+07]
  6829. E527:3DC2   mov      ss:[009E],di
  6830. E527:3DC7   mov      ss:[00A0],es
  6831. E527:3DCC   mov      ax,ss
  6832. E527:3DCE   mov      es,ax
  6833. E527:3DD0   mov      bx,0088
  6834. E527:3DD3   mov      byte ptr es:[bx],1A
  6835. E527:3DD7   mov      byte ptr es:[bx+02],04
  6836. E527:3DDC   mov      ax,[00A6]
  6837. E527:3DE0   mov      es:[bx+0E],ax
  6838. E527:3DE4   mov      ax,[00A8]
  6839. E527:3DE8   mov      es:[bx+10],ax
  6840. E527:3DEC   mov      dx,0008
  6841. E527:3DEF   mov      es:[bx+12],cx
  6842. E527:3DF3   push     cx
  6843. E527:3DF4   push     dx
  6844. E527:3DF5   call     1C58
  6845. E527:3DF8   pop      dx
  6846. E527:3DF9   pop      cx
  6847. E527:3DFA   jb       3E15
  6848. E527:3DFC   test     word ptr es:[bx+03],0200
  6849. E527:3E02   je       3E11
  6850. E527:3E04   sub      cx,es:[bx+12]
  6851. E527:3E08   jcxz     3E11
  6852. E527:3E0A   dec      dx
  6853. E527:3E0B   jne      3DEF
  6854. E527:3E0D   call     41D8
  6855. E527:3E10   stc      
  6856. E527:3E11   mov      ax,es:[bx+12]
  6857. E527:3E15   pop      es
  6858. E527:3E16   pop      ds
  6859. E527:3E17   pop      di
  6860. E527:3E18   pop      dx
  6861. E527:3E19   pop      cx
  6862. E527:3E1A   ret      
  6863. E527:3E1B   les      di,[00A2]
  6864. E527:3E1F   mov      ax,es:[di+02]
  6865. E527:3E23   cmp      al,01
  6866. E527:3E25   jne      3E2E
  6867. E527:3E27   stc      
  6868. E527:3E28   mov      ax,0005
  6869. E527:3E2B   jmp      3E77
  6870. E527:3E2D   nop      
  6871. E527:3E2E   test     word ptr es:[di+05],8080
  6872. E527:3E34   jne      3E4D
  6873. E527:3E36   mov      ax,es:[di+11]
  6874. E527:3E3A   cmp      ax,es:[di+15]
  6875. E527:3E3E   clc      
  6876. E527:3E3F   jne      3E77
  6877. E527:3E41   mov      ax,es:[di+13]
  6878. E527:3E45   cmp      ax,es:[di+17]
  6879. E527:3E49   clc      
  6880. E527:3E4A   jmp      3E77
  6881. E527:3E4C   nop      
  6882. E527:3E4D   les      di,es:[di+07]
  6883. E527:3E51   mov      [009E],di
  6884. E527:3E55   mov      [00A0],es
  6885. E527:3E59   mov      ax,ds
  6886. E527:3E5B   mov      es,ax
  6887. E527:3E5D   mov      bx,0088
  6888. E527:3E60   mov      byte ptr es:[bx],0D
  6889. E527:3E64   mov      byte ptr es:[bx+02],05
  6890. E527:3E69   call     1C58
  6891. E527:3E6C   test     word ptr es:[bx+03],0200
  6892. E527:3E72   mov      al,es:[bx+0D]
  6893. E527:3E76   clc      
  6894. E527:3E77   ret      
  6895. E527:3E78   push     cx
  6896. E527:3E79   push     dx
  6897. E527:3E7A   push     si
  6898. E527:3E7B   push     di
  6899. E527:3E7C   push     ds
  6900. E527:3E7D   lds      si,ss:[003E]
  6901. E527:3E82   cmp      dx,00
  6902. E527:3E85   jne      3EA5
  6903. E527:3E87   push     dx
  6904. E527:3E88   mov      dx,bx
  6905. E527:3E8A   div      word ptr [si+02]
  6906. E527:3E8D   mov      bx,dx
  6907. E527:3E8F   pop      dx
  6908. E527:3E90   add      dx,ax
  6909. E527:3E92   jb       3EE4
  6910. E527:3E94   add      dx,[si+10]
  6911. E527:3E97   jb       3EE4
  6912. E527:3E99   push     cx
  6913. E527:3E9A   call     0802
  6914. E527:3E9D   pop      cx
  6915. E527:3E9E   jb       3EE4
  6916. E527:3EA0   mov      ax,cx
  6917. E527:3EA2   jmp      3EE4
  6918. E527:3EA4   nop      
  6919. E527:3EA5   push     cx
  6920. E527:3EA6   push     dx
  6921. E527:3EA7   mov      dx,bx
  6922. E527:3EA9   div      word ptr [si+02]
  6923. E527:3EAC   push     dx
  6924. E527:3EAD   xor      dx,dx
  6925. E527:3EAF   mov      bl,[si+04]
  6926. E527:3EB2   xor      bh,bh
  6927. E527:3EB4   inc      bx
  6928. E527:3EB5   div      bx
  6929. E527:3EB7   mov      cx,ax
  6930. E527:3EB9   mov      ax,[si+02]
  6931. E527:3EBC   mul      dx
  6932. E527:3EBE   pop      bx
  6933. E527:3EBF   add      bx,ax
  6934. E527:3EC1   pop      dx
  6935. E527:3EC2   call     3FB1
  6936. E527:3EC5   jcxz     3EDA
  6937. E527:3EC7   call     15BE
  6938. E527:3ECA   jb       3EE1
  6939. E527:3ECC   cmp      ax,0FF8
  6940. E527:3ECF   jnb      3EE1
  6941. E527:3ED1   mov      dx,ax
  6942. E527:3ED3   inc      word ptr ss:[010D]
  6943. E527:3ED8   loop     3EC7
  6944. E527:3EDA   pop      cx
  6945. E527:3EDB   call     14CB
  6946. E527:3EDE   jmp      3EE4
  6947. E527:3EE0   nop      
  6948. E527:3EE1   pop      cx
  6949. E527:3EE2   xor      ax,ax
  6950. E527:3EE4   pop      ds
  6951. E527:3EE5   pop      di
  6952. E527:3EE6   pop      si
  6953. E527:3EE7   pop      dx
  6954. E527:3EE8   pop      cx
  6955. E527:3EE9   ret      
  6956. E527:3EEA   push     cx
  6957. E527:3EEB   push     dx
  6958. E527:3EEC   push     si
  6959. E527:3EED   push     di
  6960. E527:3EEE   push     ds
  6961. E527:3EEF   lds      si,ss:[003E]
  6962. E527:3EF4   cmp      dx,00
  6963. E527:3EF7   jne      3F17
  6964. E527:3EF9   push     dx
  6965. E527:3EFA   mov      dx,bx
  6966. E527:3EFC   div      word ptr [si+02]
  6967. E527:3EFF   mov      bx,dx
  6968. E527:3F01   pop      dx
  6969. E527:3F02   add      dx,ax
  6970. E527:3F04   jb       3F5E
  6971. E527:3F06   add      dx,[si+10]
  6972. E527:3F09   jb       3F5E
  6973. E527:3F0B   push     cx
  6974. E527:3F0C   call     082D
  6975. E527:3F0F   pop      cx
  6976. E527:3F10   jb       3F5E
  6977. E527:3F12   mov      ax,cx
  6978. E527:3F14   jmp      3F5E
  6979. E527:3F16   nop      
  6980. E527:3F17   push     cx
  6981. E527:3F18   push     dx
  6982. E527:3F19   mov      dx,bx
  6983. E527:3F1B   div      word ptr [si+02]
  6984. E527:3F1E   push     dx
  6985. E527:3F1F   xor      dx,dx
  6986. E527:3F21   mov      bl,[si+04]
  6987. E527:3F24   xor      bh,bh
  6988. E527:3F26   inc      bx
  6989. E527:3F27   div      bx
  6990. E527:3F29   mov      cx,ax
  6991. E527:3F2B   mov      ax,[si+02]
  6992. E527:3F2E   mul      dx
  6993. E527:3F30   pop      bx
  6994. E527:3F31   add      bx,ax
  6995. E527:3F33   pop      dx
  6996. E527:3F34   call     3FB1
  6997. E527:3F37   jcxz     3F54
  6998. E527:3F39   call     15BE
  6999. E527:3F3C   jb       3F5B
  7000. E527:3F3E   cmp      ax,0FF8
  7001. E527:3F41   jb       3F4B
  7002. E527:3F43   call     166B
  7003. E527:3F46   jb       3F5B
  7004. E527:3F48   call     1605
  7005. E527:3F4B   mov      dx,ax
  7006. E527:3F4D   inc      word ptr ss:[010D]
  7007. E527:3F52   loop     3F39
  7008. E527:3F54   pop      cx
  7009. E527:3F55   call     150E
  7010. E527:3F58   jmp      3F5E
  7011. E527:3F5A   nop      
  7012. E527:3F5B   pop      cx
  7013. E527:3F5C   xor      ax,ax
  7014. E527:3F5E   pop      ds
  7015. E527:3F5F   pop      di
  7016. E527:3F60   pop      si
  7017. E527:3F61   pop      dx
  7018. E527:3F62   pop      cx
  7019. E527:3F63   ret      
  7020. E527:3F64   push     cx
  7021. E527:3F65   les      di,ss:[00A2]
  7022. E527:3F6A   push     ax
  7023. E527:3F6B   mov      ax,[010D]
  7024. E527:3F6F   mov      es:[di+19],ax
  7025. E527:3F73   mov      ax,[010B]
  7026. E527:3F77   mov      es:[di+1B],ax
  7027. E527:3F7B   pop      ax
  7028. E527:3F7C   mov      cx,es:[di+15]
  7029. E527:3F80   mov      dx,es:[di+17]
  7030. E527:3F84   add      cx,ax
  7031. E527:3F86   adc      dx,00
  7032. E527:3F89   mov      es:[di+15],cx
  7033. E527:3F8D   mov      es:[di+17],dx
  7034. E527:3F91   cmp      dx,es:[di+13]
  7035. E527:3F95   jb       3FAE
  7036. E527:3F97   je       3FA4
  7037. E527:3F99   mov      es:[di+11],cx
  7038. E527:3F9D   mov      es:[di+13],dx
  7039. E527:3FA1   jmp      3FAE
  7040. E527:3FA3   nop      
  7041. E527:3FA4   cmp      cx,es:[di+11]
  7042. E527:3FA8   jbe      3FAE
  7043. E527:3FAA   mov      es:[di+11],cx
  7044. E527:3FAE   pop      cx
  7045. E527:3FAF   clc      
  7046. E527:3FB0   ret      
  7047. E527:3FB1   cmp      dx,ss:[0109]
  7048. E527:3FB6   jne      3FCB
  7049. E527:3FB8   cmp      cx,ss:[010D]
  7050. E527:3FBD   jb       3FCB
  7051. E527:3FBF   mov      dx,ss:[010B]
  7052. E527:3FC4   sub      cx,ss:[010D]
  7053. E527:3FC9   jmp      3FD5
  7054. E527:3FCB   mov      ss:[010D],cx
  7055. E527:3FD0   mov      ss:[0109],dx
  7056. E527:3FD5   ret      
  7057. E527:3FD6   test     word ptr ss:[0105],0100
  7058. E527:3FDD   je       400F
  7059. E527:3FDF   mov      ax,[009E]
  7060. E527:3FE3   cmp      ax,ss:[0036]
  7061. E527:3FE8   jne      400F
  7062. E527:3FEA   mov      ax,[00A0]
  7063. E527:3FEE   cmp      ax,ss:[0038]
  7064. E527:3FF3   jne      400F
  7065. E527:3FF5   mov      word ptr es:[bx+0E],4010
  7066. E527:3FFB   mov      es:[bx+10],cs
  7067. E527:3FFF   mov      word ptr es:[bx+12],0004
  7068. E527:4005   call     1C58
  7069. E527:4008   and      word ptr ss:[0105],FEFF
  7070. E527:400F   ret      
  7071. E527:4010   pop      si
  7072. E527:4011   inc      bx
  7073. E527:4012   or       ax,B20A
  7074. Int21_Fn1F Get DPB
  7075. E527:4014   mov      dl,0
  7076. E527:4016   jmp      4018
  7077. Int21_Fn32 Get DPB
  7078. E527:4018   push     ax
  7079. E527:4019   mov      al,dl
  7080. E527:401B   call     173C
  7081. E527:401E   jb       4036
  7082. E527:4020   call     16BF
  7083. E527:4023   lds      si,ss:[00AB]
  7084. E527:4028   mov      bx,es
  7085. E527:402A   mov      [si+0E],bx
  7086. E527:402D   mov      [si+02],di
  7087. E527:4030   pop      ax
  7088. E527:4031   xor      al,al
  7089. E527:4033   clc
  7090. E527:4034   jmp      403A
  7091. E527:4036   pop      ax
  7092. E527:4037   mov      al,FF
  7093. E527:4039   stc
  7094. E527:403A   ret
  7095. Int21_Fn52 Get DOS variables
  7096. E527:403B   mov      bx,ds
  7097. E527:403D   mov      es,bx
  7098. E527:403F   mov      bx,000C
  7099. E527:4042   ret
  7100. Int21_Fn53
  7101. E527:4043   push     ax
  7102. E527:4044   lds      bx,[00AB]
  7103. E527:4048   mov      ax,[bx+0E]
  7104. E527:404B   mov      es,ax
  7105. E527:404D   mov      di,si
  7106. E527:404F   mov      si,bx
  7107. E527:4051   mov      bx,[si+0C]
  7108. E527:4054   mov      ax,[si+10]
  7109. E527:4057   mov      ds,ax
  7110. E527:4059   call     143F
  7111. E527:405C   pop      ax
  7112. E527:405D   clc      
  7113. E527:405E   ret      
  7114. Int21_Fn50 Set current proces ID
  7115. E527:405F   mov      [007E],bx
  7116. E527:4063   ret      
  7117. Int21_Fn51
  7118. E527:4064   mov      bx,[007E]
  7119. E527:4068   ret      
  7120. Int21_Fn55
  7121. E527:4069   call     32FF
  7122. E527:406C   mov      ss:[007E],dx
  7123. E527:4071   ret      
  7124. Int21_Fn34 DOS activity flag
  7125. E527:4072   mov      bx,00C3
  7126. E527:4075   mov      es,bx
  7127. E527:4077   mov      bx,0111
  7128. E527:407A   ret      
  7129. Int21_Fn37 Set/query switch char
  7130. E527:407B   cmp      al,01
  7131. E527:407D   ja       40CD
  7132. E527:407F   je       4087
  7133. E527:4081   mov      dl,[0113]
  7134. E527:4085   jne      40CD
  7135. E527:4087   push     ax
  7136. E527:4088   mov      [0113],dl
  7137. E527:408C   mov      al,[0114]
  7138. E527:408F   cmp      byte ptr [0114],5C
  7139. E527:4094   jne      40A4
  7140. E527:4096   cmp      byte ptr [0113],5C
  7141. E527:409B   jne      40CC
  7142. E527:409D   mov      byte ptr [0114],2F
  7143. E527:40A2   jmp      40B0
  7144. E527:40A4   cmp      byte ptr [0113],5C
  7145. E527:40A9   je       40CC
  7146. E527:40AB   mov      byte ptr [0114],5C
  7147. E527:40B0   push     cx
  7148. E527:40B1   push     di
  7149. E527:40B2   push     es
  7150. E527:40B3   mov      ah,[0114]
  7151. E527:40B7   les      di,[0022]
  7152. E527:40BB   mov      cl,[0028]
  7153. E527:40BF   xor      ch,ch
  7154. E527:40C1   call     40CE
  7155. E527:40C4   add      si,51
  7156. E527:40C7   loop     40C1
  7157. E527:40C9   pop      es
  7158. E527:40CA   pop      di
  7159. E527:40CB   pop      cx
  7160. E527:40CC   pop      ax
  7161. E527:40CD   ret      
  7162. E527:40CE   push     cx
  7163. E527:40CF   mov      cx,0051
  7164. E527:40D2   repne    scasb
  7165. E527:40D4   jne      40DC
  7166. E527:40D6   mov      es:[di+FF],ah
  7167. E527:40DA   jmp      40D2
  7168. E527:40DC   pop      cx
  7169. E527:40DD   ret      
  7170. Int21_Fn58
  7171. E527:40DE   cmp      al,01
  7172. E527:40E0   ja       40FC
  7173. E527:40E2   je       40EB
  7174. E527:40E4   mov      al,[004B]
  7175. E527:40E7   xor      ah,ah
  7176. E527:40E9   jmp      40F5
  7177. E527:40EB   cmp      bx,0100
  7178. E527:40EF   jnb      40F8
  7179. E527:40F1   mov      [004B],bl
  7180. E527:40F5   clc      
  7181. E527:40F6   jmp      40FC
  7182. E527:40F8   mov      ax,0001
  7183. E527:40FB   stc      
  7184. E527:40FC   ret      
  7185. Int21_Fn60
  7186. E527:40FD   lds      bx,ss:[00AB]
  7187. E527:4102   mov      ds,[bx+0E]
  7188. E527:4105   mov      bx,si
  7189. E527:4107   call     192C
  7190. E527:410A   jb       4115
  7191. E527:410C   call     4B40
  7192. E527:410F   call     4B95
  7193. E527:4112   clc      
  7194. E527:4113   jmp      4118
  7195. E527:4115   mov      ax,0003
  7196. E527:4118   ret      
  7197. E527:4119   call     0F2D
  7198. E527:411C   or       word ptr ss:[0105],0100
  7199. E527:4123   dec      byte ptr ss:[0111]
  7200. E527:4128   mov      ax,[00AD]
  7201. E527:412C   mov      bx,ss:[00AB]
  7202. E527:4131   add      bx,0C
  7203. E527:4134   mov      ss:[010F],bx
  7204. E527:4139   sub      bx,0C
  7205. E527:413C   mov      ss,ax
  7206. E527:413E   mov      sp,bx
  7207. E527:4140   pop      ax
  7208. E527:4141   pop      bx
  7209. E527:4142   pop      cx
  7210. E527:4143   pop      dx
  7211. E527:4144   pop      si
  7212. E527:4145   pop      di
  7213. E527:4146   pop      bp
  7214. E527:4147   pop      ds
  7215. E527:4148   pop      es
  7216. E527:4149   clc      
  7217. E527:414A   int      23
  7218. E527:414C   pushf
  7219. E527:414D   push     ax
  7220. E527:414E   push     ds
  7221. E527:414F   mov      ax,00C3
  7222. E527:4152   mov      ds,ax
  7223. E527:4154   cmp      sp,[010F]
  7224. E527:4158   pop      ds
  7225. E527:4159   pop      ax
  7226. E527:415A   je       416C
  7227. E527:415C   push     ax
  7228. E527:415D   push     bp
  7229. E527:415E   mov      bp,sp
  7230. E527:4160   add      bp,04
  7231. E527:4163   mov      ax,[bp+00]
  7232. E527:4166   mov      [bp+02],ax
  7233. E527:4169   pop      bp
  7234. E527:416A   pop      ax
  7235. E527:416B   popf
  7236. E527:416C   popf
  7237. E527:416D   jb       4172
  7238. E527:416F   jmp      44DA
  7239. E527:4172   mov      ax,00C3
  7240. E527:4175   mov      ss,ax
  7241. E527:4177   mov      sp,0ABF
  7242. E527:417A   inc      byte ptr ss:[0111]
  7243. E527:417F   mov      ax,0100
  7244. E527:4182   mov      [0082],ax
  7245. E527:4186   jmp      469D
  7246. E527:4189   pushf
  7247. E527:418A   test     word ptr ss:[0105],0200
  7248. E527:4191   je       41D6
  7249. E527:4193   test     word ptr ss:[0105],0800
  7250. E527:419A   je       41D6
  7251. E527:419C   push     ax
  7252. E527:419D   push     bx
  7253. E527:419E   push     es
  7254. E527:419F   les      bx,ss:[003A]
  7255. E527:41A4   mov      ss:[009E],bx
  7256. E527:41A9   mov      ss:[00A0],es
  7257. E527:41AE   mov      bx,ss
  7258. E527:41B0   mov      es,bx
  7259. E527:41B2   mov      bx,0088
  7260. E527:41B5   mov      byte ptr es:[bx],0E
  7261. E527:41B9   mov      byte ptr es:[bx+02],05
  7262. E527:41BE   call     1C58
  7263. E527:41C1   test     word ptr es:[bx+03],0200
  7264. E527:41C7   jne      41D3
  7265. E527:41C9   cmp      byte ptr es:[bx+0D],03
  7266. E527:41CE   jne      41D3
  7267. E527:41D0   jmp      4119
  7268. E527:41D3   pop      es
  7269. E527:41D4   pop      bx
  7270. E527:41D5   pop      ax
  7271. E527:41D6   popf
  7272. E527:41D7   ret      
  7273. E527:41D8   test     word ptr ss:[0105],8000
  7274. E527:41DF   je       41E4
  7275. E527:41E1   jmp      428A
  7276. E527:41E4   mov      byte ptr ss:[0086],00
  7277. E527:41EA   push     word ptr ss:[00AB]
  7278. E527:41EF   push     word ptr ss:[00AD]
  7279. E527:41F4   or       word ptr ss:[0105],8000
  7280. E527:41FB   lds      si,ss:[009E]
  7281. E527:4200   test     word ptr [si+04],8000
  7282. E527:4205   je       420B
  7283. E527:4207   mov      ah,80
  7284. E527:4209   jmp      422D
  7285. E527:420B   mov      ah,ss:[0086]
  7286. E527:4210   mov      al,es:[bx+02]
  7287. E527:4214   cmp      al,02
  7288. E527:4216   je       4229
  7289. E527:4218   cmp      al,04
  7290. E527:421A   je       4229
  7291. E527:421C   cmp      al,01
  7292. E527:421E   je       4229
  7293. E527:4220   call     0949
  7294. E527:4223   call     2E43
  7295. E527:4226   or       ah,01
  7296. E527:4229   mov      al,[0051]
  7297. E527:422D   mov      di,es:[bx+03]
  7298. E527:4231   mov      bp,ds
  7299. E527:4233   mov      dx,ss
  7300. E527:4235   mov      ds,dx
  7301. E527:4237   mov      bx,sp
  7302. E527:4239   mov      cx,ss:[00AB]
  7303. E527:423E   mov      ss,ss:[00AD]
  7304. E527:4243   mov      sp,cx
  7305. E527:4245   int      24
  7306. E527:4247   and      word ptr [0105],7FFF
  7307. E527:424D   cmp      al,01
  7308. E527:424F   je       427A
  7309. E527:4251   jb       4265
  7310. E527:4253   mov      ax,00C3
  7311. E527:4256   mov      ss,ax
  7312. E527:4258   mov      sp,0ABF
  7313. E527:425B   mov      ax,0200
  7314. E527:425E   mov      [0082],ax
  7315. E527:4262   jmp      469D
  7316. E527:4265   mov      ss,dx
  7317. E527:4267   mov      sp,bx
  7318. E527:4269   pop      word ptr ss:[00AD]
  7319. E527:426E   pop      word ptr ss:[00AB]
  7320. E527:4273   mov      ax,0003
  7321. E527:4276   stc      
  7322. E527:4277   jmp      4617
  7323. E527:427A   dec      byte ptr [0111]
  7324. E527:427E   pop      ax
  7325. E527:427F   pop      bx
  7326. E527:4280   pop      cx
  7327. E527:4281   pop      dx
  7328. E527:4282   pop      si
  7329. E527:4283   pop      di
  7330. E527:4284   pop      bp
  7331. E527:4285   pop      ds
  7332. E527:4286   pop      es
  7333. E527:4287   jmp      44DA
  7334. E527:428A   ret      
  7335. E527:428B   push     bx
  7336. E527:428C   push     cx
  7337. E527:428D   push     dx
  7338. E527:428E   push     di
  7339. E527:428F   mov      ah,dl
  7340. E527:4291   shr      ah,1
  7341. E527:4293   shr      ah,1
  7342. E527:4295   mov      cx,0008
  7343. E527:4298   xor      dh,dh
  7344. E527:429A   call     42B0
  7345. E527:429D   mov      cx,0003
  7346. E527:42A0   shr      ah,1
  7347. E527:42A2   lodsb
  7348. E527:42A3   cmp      al,2E
  7349. E527:42A5   call     42B0
  7350. E527:42A8   mov      al,dh
  7351. E527:42AA   clc      
  7352. E527:42AB   pop      di
  7353. E527:42AC   pop      dx
  7354. E527:42AD   pop      cx
  7355. E527:42AE   pop      bx
  7356. E527:42AF   ret      
  7357. E527:42B0   mov      bx,cx
  7358. E527:42B2   je       42B7
  7359. E527:42B4   dec      si
  7360. E527:42B5   jmp      42D2
  7361. E527:42B7   lodsb
  7362. E527:42B8   call     42E7
  7363. E527:42BB   je       42CD
  7364. E527:42BD   cmp      al,3F
  7365. E527:42BF   jne      42C4
  7366. E527:42C1   or       dh,01
  7367. E527:42C4   cmp      al,2A
  7368. E527:42C6   je       42DF
  7369. E527:42C8   stosb
  7370. E527:42C9   loop     42B7
  7371. E527:42CB   jmp      42E6
  7372. E527:42CD   dec      si
  7373. E527:42CE   cmp      cx,bx
  7374. E527:42D0   jne      42DB
  7375. E527:42D2   test     ah,01
  7376. E527:42D5   je       42DB
  7377. E527:42D7   add      di,cx
  7378. E527:42D9   jmp      42E6
  7379. E527:42DB   mov      al,20
  7380. E527:42DD   jmp      42E4
  7381. E527:42DF   or       dh,01
  7382. E527:42E2   mov      al,3F
  7383. E527:42E4   rep      stosb
  7384. E527:42E6   ret      
  7385. E527:42E7   cmp      al,41
  7386. E527:42E9   jb       42FD
  7387. E527:42EB   cmp      al,5A
  7388. E527:42ED   jbe      42F9
  7389. E527:42EF   cmp      al,61
  7390. E527:42F1   jb       42FD
  7391. E527:42F3   cmp      al,7A
  7392. E527:42F5   ja       42FD
  7393. E527:42F7   sub      al,20
  7394. E527:42F9   test     al,FF
  7395. E527:42FB   jmp      4319
  7396. E527:42FD   cmp      al,20
  7397. E527:42FF   jnb      4305
  7398. E527:4301   cmp      al,al
  7399. E527:4303   jmp      4319
  7400. E527:4305   push     cx
  7401. E527:4306   push     di
  7402. E527:4307   push     es
  7403. E527:4308   mov      di,cs
  7404. E527:430A   mov      es,di
  7405. E527:430C   mov      di,431A
  7406. E527:430F   nop      
  7407. E527:4310   mov      cx,000C
  7408. E527:4313   nop      
  7409. E527:4314   repne    scasb
  7410. E527:4316   pop      es
  7411. E527:4317   pop      di
  7412. E527:4318   pop      cx
  7413. E527:4319   ret      
  7414. E527:431A   and      [3B3A],ch
  7415. E527:431E   cmp      ax,2F2B
  7416. E527:4321   and      bh,[si+5C]
  7417. E527:4324   or       [bx+si],ax
  7418. E527:4326   call     42E7
  7419. E527:4329   je       4343
  7420. E527:432B   cmp      al,41
  7421. E527:432D   jb       4343
  7422. E527:432F   cmp      al,5A
  7423. E527:4331   ja       4343
  7424. E527:4333   sub      al,41
  7425. E527:4335   cmp      al,ss:[0028]
  7426. E527:433A   jnb      4343
  7427. E527:433C   mov      [0051],al
  7428. E527:4340   clc      
  7429. E527:4341   jmp      4344
  7430. E527:4343   stc      
  7431. E527:4344   ret      
  7432. E527:4345   push     ax
  7433. E527:4346   push     cx
  7434. E527:4347   push     bx
  7435. E527:4348   mov      cl,04
  7436. E527:434A   shr      bx,cl
  7437. E527:434C   mov      ax,es
  7438. E527:434E   add      ax,bx
  7439. E527:4350   mov      es,ax
  7440. E527:4352   pop      bx
  7441. E527:4353   and      bx,000F
  7442. E527:4357   pop      cx
  7443. E527:4358   pop      ax
  7444. E527:4359   ret      
  7445. E527:435A   xor      al,al
  7446. E527:435C   mov      cx,0041
  7447. E527:435F   call     4363
  7448. E527:4362   ret
  7449. E527:4363   push     ax
  7450. E527:4364   push     di
  7451. E527:4365   push     es
  7452. E527:4366   mov      di,ds
  7453. E527:4368   mov      es,di
  7454. E527:436A   mov      di,si
  7455. E527:436C   push     cx
  7456. E527:436D   repne    scasb
  7457. E527:436F   pop      ax
  7458. E527:4370   je       4375
  7459. E527:4372   stc      
  7460. E527:4373   jmp      4379
  7461. E527:4375   sub      ax,cx
  7462. E527:4377   dec      ax
  7463. E527:4378   clc      
  7464. E527:4379   mov      cx,ax
  7465. E527:437B   pop      es
  7466. E527:437C   pop      di
  7467. E527:437D   pop      ax
  7468. E527:437E   ret      
  7469. E527:437F   test     ax,000F
  7470. E527:4382   pushf
  7471. E527:4383   shr      ax,1
  7472. E527:4385   shr      ax,1
  7473. E527:4387   shr      ax,1
  7474. E527:4389   shr      ax,1
  7475. E527:438B   popf
  7476. E527:438C   je       438F
  7477. E527:438E   inc      ax
  7478. E527:438F   ret      
  7479. E527:4390   push     ax
  7480. E527:4391   push     cx
  7481. E527:4392   push     si
  7482. E527:4393   push     di
  7483. E527:4394   push     es
  7484. E527:4395   mov      si,ds
  7485. E527:4397   mov      es,si
  7486. E527:4399   mov      si,0088
  7487. E527:439C   mov      cx,00AF
  7488. E527:439F   sub      cx,0088
  7489. E527:43A3   mov      al,[0111]
  7490. E527:43A6   mul      cl
  7491. E527:43A8   mov      di,si
  7492. E527:43AA   add      di,ax
  7493. E527:43AC   rep      movsb
  7494. E527:43AE   pop      es
  7495. E527:43AF   pop      di
  7496. E527:43B0   pop      si
  7497. E527:43B1   pop      cx
  7498. E527:43B2   pop      ax
  7499. E527:43B3   ret
  7500. E527:43B4   push     ax
  7501. E527:43B5   push     cx
  7502. E527:43B6   push     si
  7503. E527:43B7   push     di
  7504. E527:43B8   push     es
  7505. E527:43B9   mov      si,ds
  7506. E527:43BB   mov      es,si
  7507. E527:43BD   mov      di,0088
  7508. E527:43C0   mov      cx,00AF
  7509. E527:43C3   sub      cx,0088
  7510. E527:43C7   mov      al,[0111]
  7511. E527:43CA   mul      cl
  7512. E527:43CC   mov      si,di
  7513. E527:43CE   add      si,ax
  7514. E527:43D0   rep      movsb
  7515. E527:43D2   pop      es
  7516. E527:43D3   pop      di
  7517. E527:43D4   pop      si
  7518. E527:43D5   pop      cx
  7519. E527:43D6   pop      ax
  7520. E527:43D7   ret
  7521. E527:43D8   push     bx
  7522. E527:43D9   mov      bx,cx
  7523. E527:43DB   mov      al,2A
  7524. E527:43DD   call     4363
  7525. E527:43E0   jnb      43F1
  7526. E527:43E2   mov      al,2E
  7527. E527:43E4   call     4363
  7528. E527:43E7   jnb      43F1
  7529. E527:43E9   xor      al,al
  7530. E527:43EB   call     4363
  7531. E527:43EE   jnb      43F1
  7532. E527:43F0   dec      cx
  7533. E527:43F1   pop      bx
  7534. E527:43F2   ret      
  7535. E527:43F3   push     bx
  7536. E527:43F4   mov      bx,cx
  7537. E527:43F6   mov      cx,0020
  7538. E527:43F9   mov      al,2E
  7539. E527:43FB   call     4363
  7540. E527:43FE   jb       4416
  7541. E527:4400   add      si,cx
  7542. E527:4402   mov      cx,bx
  7543. E527:4404   mov      al,2A
  7544. E527:4406   call     4363
  7545. E527:4409   jnb      4415
  7546. E527:440B   xor      al,al
  7547. E527:440D   call     4363
  7548. E527:4410   cmp      cx,02
  7549. E527:4413   jb       4416
  7550. E527:4415   clc      
  7551. E527:4416   pop      bx
  7552. E527:4417   ret      
  7553.  
  7554. 4666 Int21_Fn00
  7555. 0A86 Int21_Fn01
  7556. 0ABA Int21_Fn02
  7557. 0738 Int21_Fn03
  7558. 0769 Int21_Fn04
  7559. 076E Int21_Fn05
  7560. 0AF1 Int21_Fn06
  7561. 0B24 Int21_Fn07
  7562. 0B44 Int21_Fn08
  7563. 0B7B Int21_Fn09
  7564. 0BD0 Int21_Fn0A
  7565. 0E13 Int21_Fn0B
  7566. 0E33 Int21_Fn0C
  7567. 1BC2 Int21_Fn0D
  7568. 1BD8 Int21_Fn0E
  7569. 1DFA Int21_Fn0F
  7570. 1E1F Int21_Fn10
  7571. 1E7A Int21_Fn11
  7572. 1EB6 Int21_Fn12
  7573. 1EDB Int21_Fn13
  7574. 1F2B Int21_Fn14
  7575. 1F36 Int21_Fn15
  7576. 1F41 Int21_Fn16
  7577. 1F8A Int21_Fn17
  7578. 4661 Int21_Fn18
  7579. 1BE6 Int21_Fn19
  7580. 1BEA Int21_Fn1A
  7581. 1C04 Int21_Fn1B
  7582. 1C08 Int21_Fn1C
  7583. 4661 Int21_Fn1D
  7584. 4661 Int21_Fn1E
  7585. 4014 Int21_Fn1F
  7586. 4661 Int21_Fn20
  7587. 2039 Int21_Fn21
  7588. 2060 Int21_Fn22
  7589. 2087 Int21_Fn23
  7590. 20BD Int21_Fn24
  7591. 32E3 Int21_Fn25
  7592. 32FF Int21_Fn26
  7593. 20E6 Int21_Fn27
  7594. 2142 Int21_Fn28
  7595. 3325 Int21_Fn29
  7596. 0FF3 Int21_Fn2A
  7597. 106A Int21_Fn2B
  7598. 10ED Int21_Fn2C
  7599. 110B Int21_Fn2D
  7600. 3376 Int21_Fn2E
  7601. 1BF5 Int21_Fn2F
  7602. 338F Int21_Fn30
  7603. 467B Int21_Fn31
  7604. 4018 Int21_Fn32
  7605. 33AB Int21_Fn33
  7606. 4072 Int21_Fn34
  7607. 33D5 Int21_Fn35
  7608. 1C3A Int21_Fn36
  7609. 407B Int21_Fn37
  7610. 0F4F Int21_Fn38
  7611. 1997 Int21_Fn39
  7612. 1A21 Int21_Fn3A
  7613. 1A8F Int21_Fn3B
  7614. 25E7 Int21_Fn3C
  7615. 2635 Int21_Fn3D
  7616. 26A0 Int21_Fn3E
  7617. 3A58 Int21_Fn3F
  7618. 3B16 Int21_Fn40
  7619. 2733 Int21_Fn41
  7620. 3B6B Int21_Fn42
  7621. 2788 Int21_Fn43
  7622. 2E79 Int21_Fn44
  7623. 27FD Int21_Fn45
  7624. 2841 Int21_Fn46
  7625. 1BA1 Int21_Fn47
  7626. 304E Int21_Fn48
  7627. 311C Int21_Fn49
  7628. 3141 Int21_Fn4A
  7629. 474B Int21_Fn4B
  7630. 4694 Int21_Fn4C
  7631. 33E7 Int21_Fn4D
  7632. 2872 Int21_Fn4E
  7633. 289C Int21_Fn4F
  7634. 405F Int21_Fn50
  7635. 4064 Int21_Fn51
  7636. 403B Int21_Fn52
  7637. 4043 Int21_Fn53
  7638. 33EB Int21_Fn54
  7639. 4069 Int21_Fn55
  7640. 28B4 Int21_Fn56
  7641. 2989 Int21_Fn57
  7642. 40DE Int21_Fn58
  7643. 498E Int21_Fn59
  7644. 4661 Int21_Fn5A
  7645. 4661 Int21_Fn5B
  7646. 4661 Int21_Fn5C
  7647. 4661 Int21_Fn5D
  7648. 4661 Int21_Fn5E
  7649. 4661 Int21_Fn5F
  7650. 40FD Int21_Fn60
  7651.  
  7652. INT_21 DOS Services
  7653. E527:44DA   sti
  7654. E527:44DB   cld
  7655. E527:44DC   cmp      ah,61
  7656. E527:44DF   jb       44E4
  7657. E527:44E1   jmp      4565
  7658. E527:44E4   cmp      ah,25
  7659. E527:44E7   je       452C
  7660. E527:44E9   cmp      ah,34
  7661. E527:44EC   je       452C
  7662. E527:44EE   cmp      ah,35
  7663. E527:44F1   je       452C
  7664. E527:44F3   cmp      ah,2E
  7665. E527:44F6   je       4545
  7666. E527:44F8   cmp      ah,30
  7667. E527:44FB   je       4545
  7668. E527:44FD   cmp      ah,33
  7669. E527:4500   je       4545
  7670. E527:4502   cmp      ah,37
  7671. E527:4505   je       4545
  7672. E527:4507   cmp      ah,4D
  7673. E527:450A   je       4545
  7674. E527:450C   cmp      ah,50
  7675. E527:450F   je       4545
  7676. E527:4511   cmp      ah,51
  7677. E527:4514   je       4545
  7678. E527:4516   cmp      ah,52
  7679. E527:4519   je       4545
  7680. E527:451B   cmp      ah,54
  7681. E527:451E   je       4545
  7682. E527:4520   cmp      ah,58
  7683. E527:4523   je       4545
  7684. E527:4525   cmp      ah,59
  7685. E527:4528   je       4545
  7686. E527:452A   jmp      456B
  7687. E527:452C   push     bp
  7688. E527:452D   xchg     ah,al
  7689. E527:452F   mov      bp,ax
  7690. E527:4531   and      bp,00FF
  7691. E527:4535   shl      bp,1
  7692. E527:4537   add      bp,4418
  7693. E527:453B   xchg     ah,al
  7694. E527:453D   call     word ptr cs:[bp+00]
  7695. E527:4541   pop      bp
  7696. E527:4542   jmp      464A
  7697. E527:4545   push     bp
  7698. E527:4546   push     ds
  7699. E527:4547   mov      bp,00C3
  7700. E527:454A   mov      ds,bp
  7701. E527:454C   xchg     ah,al
  7702. E527:454E   mov      bp,ax
  7703. E527:4550   and      bp,00FF
  7704. E527:4554   shl      bp,1
  7705. E527:4556   add      bp,4418
  7706. E527:455A   xchg     ah,al
  7707. E527:455C   call     word ptr cs:[bp+00]
  7708. E527:4560   pop      ds
  7709. E527:4561   pop      bp
  7710. E527:4562   jmp      464A
  7711. E527:4565   call     4661
  7712. E527:4568   jmp      464A
  7713. E527:456B   push     es
  7714. E527:456C   push     ds
  7715. E527:456D   push     bp
  7716. E527:456E   push     di
  7717. E527:456F   push     si
  7718. E527:4570   push     dx
  7719. E527:4571   push     cx
  7720. E527:4572   push     bx
  7721. E527:4573   push     ax
  7722. E527:4574   mov      bp,00C3
  7723. E527:4577   mov      ds,bp
  7724. E527:4579   cmp      byte ptr [0111],00
  7725. E527:457E   je       458B
  7726. E527:4580   test     word ptr [0105],8000
  7727. E527:4586   jne      458B
  7728. E527:4588   call     4390
  7729. E527:458B   mov      [00AB],sp
  7730. E527:458F   mov      [00AD],ss
  7731. E527:4593   mov      bp,sp
  7732. E527:4595   mov      bp,[bp+0E]
  7733. E527:4598   mov      [00A6],dx
  7734. E527:459C   mov      [00A8],bp
  7735. E527:45A0   mov      bp,[007E]
  7736. E527:45A4   mov      ds,bp
  7737. E527:45A6   xor      bp,bp
  7738. E527:45A8   mov      ds:[bp+2E],sp
  7739. E527:45AC   mov      ds:[bp+30],ss
  7740. E527:45B0   mov      bp,00C3
  7741. E527:45B3   mov      ds,bp
  7742. E527:45B5   test     word ptr [0105],8000
  7743. E527:45BB   jne      45D2
  7744. E527:45BD   cmp      byte ptr [0111],01
  7745. E527:45C2   je       45D9
  7746. E527:45C4   ja       45E0
  7747. E527:45C6   cmp      ah,0C
  7748. E527:45C9   ja       45E0
  7749. E527:45CB   mov      ss,bp
  7750. E527:45CD   mov      sp,06BF
  7751. E527:45D0   jmp      45E5
  7752. E527:45D2   mov      ss,bp
  7753. E527:45D4   mov      sp,0ABF
  7754. E527:45D7   jmp      45E5
  7755. E527:45D9   mov      ss,bp
  7756. E527:45DB   mov      sp,0CBF
  7757. E527:45DE   jmp      45E5
  7758. E527:45E0   mov      ss,bp
  7759. E527:45E2   mov      sp,08BF
  7760. E527:45E5   and      word ptr [0105],FDFF
  7761. E527:45EB   cmp      ah,0C
  7762. E527:45EE   ja       45F6
  7763. E527:45F0   or       word ptr [0105],0200
  7764. E527:45F6   xchg     ah,al
  7765. E527:45F8   mov      bp,ax
  7766. E527:45FA   and      bp,00FF
  7767. E527:45FE   shl      bp,1
  7768. E527:4600   add      bp,4418
  7769. E527:4604   xchg     ah,al
  7770. E527:4606   inc      byte ptr [0111]
  7771. E527:460A   push     ax
  7772. E527:460B   mov      ah,82
  7773. E527:460D   int      2A
  7774. E527:460F   pop      ax
  7775. E527:4610   call     word ptr cs:[bp+00]
  7776. E527:4614   call     4189
  7777. E527:4617   mov      bp,00C3
  7778. E527:461A   mov      ds,bp
  7779. E527:461C   mov      [0117],ax
  7780. E527:461F   les      di,[00AB]
  7781. E527:4623   mov      bp,es
  7782. E527:4625   mov      ss,bp
  7783. E527:4627   mov      sp,di
  7784. E527:4629   pushf
  7785. E527:462A   dec      byte ptr [0111]
  7786. E527:462E   cmp      byte ptr [0111],00
  7787. E527:4633   je       4640
  7788. E527:4635   test     word ptr [0105],8000
  7789. E527:463B   jne      4640
  7790. E527:463D   call     43B4
  7791. E527:4640   popf
  7792. E527:4641   pop      bx
  7793. E527:4642   pop      bx
  7794. E527:4643   pop      cx
  7795. E527:4644   pop      dx
  7796. E527:4645   pop      si
  7797. E527:4646   pop      di
  7798. E527:4647   pop      bp
  7799. E527:4648   pop      ds
  7800. E527:4649   pop      es
  7801. E527:464A   retf     0002
  7802. E527:464D   push     ax
  7803. E527:464E   push     bp
  7804. E527:464F   mov      bp,sp
  7805. E527:4651   mov      ax,[bp+08]
  7806. E527:4654   mov      [bp+04],ax
  7807. E527:4657   pushf
  7808. E527:4658   pop      ax
  7809. E527:4659   mov      [bp+08],ax
  7810. E527:465C   pop      bp
  7811. E527:465D   pop      ax
  7812. E527:465E   jmp      44DA
  7813. Int21_Fn18
  7814. Int21_Fn1D
  7815. Int21_Fn1E
  7816. Int21_Fn20
  7817. Int21_Fn5A
  7818. Int21_Fn5B
  7819. Int21_Fn5C
  7820. Int21_Fn5D
  7821. Int21_Fn5E
  7822. Int21_Fn5F
  7823. E527:4661   mov      ax,0001
  7824. E527:4664   stc      
  7825. E527:4665   ret      
  7826. Int21_Fn00 Terminate
  7827. E527:4666   lds      si,ss:[00AB]
  7828. E527:466B   mov      ax,[si+14]
  7829. E527:466E   mov      [007E],ax
  7830. E527:4672   xor      ax,ax
  7831. E527:4674   mov      [0082],ax
  7832. E527:4678   jmp      469D
  7833. E527:467A   nop      
  7834. Int21_Fn31 Terminate and stay resident
  7835. E527:467B   mov      ah,03
  7836. E527:467D   mov      [0082],ax
  7837. E527:4681   call     46AF
  7838. E527:4684   mov      es,ss:[007E]
  7839. E527:4689   mov      bx,dx
  7840. E527:468B   call     3141   Int21_Fn4A
  7841. E527:468E   call     46EF
  7842. E527:4691   jmp      4709
  7843. E527:4693   nop      
  7844. Int21_Fn4C Terminate program
  7845. E527:4694   xor      ah,ah
  7846. E527:4696   mov      [0082],ax
  7847. E527:469A   jmp      469D
  7848. E527:469C   nop      
  7849. E527:469D   call     46AF
  7850. E527:46A0   call     46D3
  7851. E527:46A3   call     1bc2   Reset disk
  7852. E527:46A6   call     3207
  7853. E527:46A9   call     46EF
  7854. E527:46AC   jmp      4709
  7855. E527:46AE   nop      
  7856. E527:46AF   mov      ds,ss:[007E]
  7857. E527:46B4   xor      si,si
  7858. E527:46B6   mov      es,si
  7859. E527:46B8   lea      si,[si+0A]
  7860. E527:46BB   mov      di,0088
  7861. E527:46BE   mov      cx,0006
  7862. E527:46C1   rep      movsw
  7863. E527:46C3   cmp      byte ptr ss:[0087],80
  7864. E527:46C9   jne      46D2
  7865. E527:46CB   mov      ax,2401
  7866. E527:46CE   xor      dx,dx
  7867. E527:46D0   int      61
  7868. E527:46D2   ret      
  7869. E527:46D3   mov      ds,ss:[007E]
  7870. E527:46D8   mov      ax,ds
  7871. E527:46DA   xor      si,si
  7872. E527:46DC   cmp      ax,[si+16]
  7873. E527:46DF   je       46EE
  7874. E527:46E1   mov      cx,ss:[0129]
  7875. E527:46E6   xor      bx,bx
  7876. E527:46E8   call     26A0
  7877. E527:46EB   inc      bx
  7878. E527:46EC   loop     46E8
  7879. E527:46EE   ret      
  7880. E527:46EF   mov      ds,ss:[007E]
  7881. E527:46F4   xor      si,si
  7882. E527:46F6   mov      ax,[si+16]
  7883. E527:46F9   mov      [007E],ax
  7884. E527:46FD   mov      word ptr ss:[004C],0080
  7885. E527:4704   mov      [004E],ax
  7886. E527:4708   ret
  7887. E527:4709   dec      byte ptr ss:[0111]
  7888. E527:470E   mov      ax,ss
  7889. E527:4710   mov      ds,ax
  7890. E527:4712   call     43B4
  7891. E527:4715   xor      si,si
  7892. E527:4717   mov      ds,si
  7893. E527:4719   mov      si,0088
  7894. E527:471C   lds      si,[si]
  7895. E527:471E   mov      ax,[007E]
  7896. E527:4722   mov      es,ax
  7897. E527:4724   xor      di,di
  7898. E527:4726   les      di,es:[di+2E]
  7899. E527:472A   mov      es:[di+14],ds
  7900. E527:472E   mov      es:[di+12],si
  7901. E527:4732   mov      ax,es
  7902. E527:4734   mov      ss,ax
  7903. E527:4736   mov      sp,di
  7904. E527:4738   pop      ax
  7905. E527:4739   pop      bx
  7906. E527:473A   pop      cx
  7907. E527:473B   pop      dx
  7908. E527:473C   pop      si
  7909. E527:473D   pop      di
  7910. E527:473E   pop      bp
  7911. E527:473F   pop      ds
  7912. E527:4740   pop      es
  7913. E527:4741   clc      
  7914. E527:4742   retf     0002
  7915. E527:4745   xor      [3530],bp
  7916. E527:4749   xor      ah,[si]
  7917. Int21_Fn4B Execute or load a program
  7918. E527:474B   cmp      al,01
  7919. E527:474D   jbe      4763
  7920. E527:474F   cmp      al,03
  7921. E527:4751   je       4763
  7922. E527:4753   cmp      al,80
  7923. E527:4755   je       4763
  7924. E527:4757   cmp      al,FF
  7925. E527:4759   mov      al,80
  7926. E527:475B   je       4763
  7927. E527:475D   mov      ax,0001
  7928. E527:4760   stc      
  7929. E527:4761   jmp      47B6
  7930. E527:4763   mov      [0087],al
  7931. E527:4766   mov      [0076],bx
  7932. E527:476A   mov      [0078],es
  7933. E527:476E   mov      cx,0007
  7934. E527:4771   call     2A25
  7935. E527:4774   jb       47B6
  7936. E527:4776   test     al,40
  7937. E527:4778   jne      47B2
  7938. E527:477A   cmp      byte ptr ss:[0087],80
  7939. E527:4780   jne      478A
  7940. E527:4782   cmp      byte ptr ss:[0051],02
  7941. E527:4788   je       47B2
  7942. E527:478A   mov      dx,es:[di+1A]
  7943. E527:478E   mov      di,01A3
  7944. E527:4791   xor      ax,ax
  7945. E527:4793   mov      bx,ax
  7946. E527:4795   mov      cx,001C
  7947. E527:4798   call     3E78
  7948. E527:479B   jb       47B6
  7949. E527:479D   cmp      ax,cx
  7950. E527:479F   jb       47AD
  7951. E527:47A1   cmp      word ptr es:[di],5A4D
  7952. E527:47A6   jne      47AD
  7953. E527:47A8   call     48BB
  7954. E527:47AB   jmp      47B6
  7955. E527:47AD   call     47B7
  7956. E527:47B0   jmp      47B6
  7957. E527:47B2   mov      ax,0005
  7958. E527:47B5   stc      
  7959. E527:47B6   ret      
  7960. E527:47B7   mov      si,016D
  7961. E527:47BA   cmp      word ptr ss:[si+1E],00
  7962. E527:47BF   je       47C8
  7963. E527:47C1   mov      ax,000B
  7964. E527:47C4   stc      
  7965. E527:47C5   jmp      48BA
  7966. E527:47C8   cmp      byte ptr ss:[0087],03
  7967. E527:47CE   je       47F8
  7968. E527:47D0   call     4AB1
  7969. E527:47D3   jnb      47D8
  7970. E527:47D5   jmp      48AD
  7971. E527:47D8   call     4BEE
  7972. E527:47DB   jnb      47E0
  7973. E527:47DD   jmp      48A9
  7974. E527:47E0   sub      bx,10
  7975. E527:47E3   jnb      47EB
  7976. E527:47E5   mov      ax,0008
  7977. E527:47E8   jmp      48A9
  7978. E527:47EB   cmp      byte ptr ss:[0087],80
  7979. E527:47F1   je       483A
  7980. E527:47F3   mov      di,0100
  7981. E527:47F6   jmp      47FB
  7982. E527:47F8   call     4CC4
  7983. E527:47FB   mov      si,016D
  7984. E527:47FE   mov      ax,ss:[si+1C]
  7985. E527:4802   mov      cx,ax
  7986. E527:4804   call     437F
  7987. E527:4807   cmp      ax,bx
  7988. E527:4809   jbe      4810
  7989. E527:480B   mov      ax,0008
  7990. E527:480E   jmp      4824
  7991. E527:4810   mov      dx,ss:[si+1A]
  7992. E527:4814   push     bx
  7993. E527:4815   xor      ax,ax
  7994. E527:4817   mov      bx,ax
  7995. E527:4819   call     3E78
  7996. E527:481C   pop      bx
  7997. E527:481D   cmp      ax,cx
  7998. E527:481F   je       4830
  7999. E527:4821   mov      ax,000B
  8000. E527:4824   cmp      byte ptr ss:[0087],03
  8001. E527:482A   jne      48A9
  8002. E527:482C   stc      
  8003. E527:482D   jmp      48BA
  8004. E527:4830   cmp      byte ptr ss:[0087],03
  8005. E527:4836   jne      483A
  8006. E527:4838   jmp      48B7
  8007. E527:483A   call     4C10
  8008. E527:483D   mov      dx,es
  8009. E527:483F   call     32FF
  8010. E527:4842   call     4C29
  8011. E527:4845   mov      dx,es
  8012. E527:4847   dec      dx
  8013. E527:4848   mov      ds,dx
  8014. E527:484A   xor      bx,bx
  8015. E527:484C   mov      dx,[bx+03]
  8016. E527:484F   xor      bx,bx
  8017. E527:4851   cmp      dx,1000
  8018. E527:4855   jnb      4861
  8019. E527:4857   mov      bx,dx
  8020. E527:4859   shl      bx,1
  8021. E527:485B   shl      bx,1
  8022. E527:485D   shl      bx,1
  8023. E527:485F   shl      bx,1
  8024. E527:4861   cmp      byte ptr ss:[0087],01
  8025. E527:4867   je       4883
  8026. E527:4869   dec      byte ptr ss:[0111]
  8027. E527:486E   mov      ax,ss
  8028. E527:4870   mov      ds,ax
  8029. E527:4872   call     43B4
  8030. E527:4875   cmp      byte ptr ss:[0087],80
  8031. E527:487B   je       4880
  8032. E527:487D   jmp      4CE4
  8033. E527:4880   jmp      4D03
  8034. E527:4883   dec      bx
  8035. E527:4884   dec      bx
  8036. E527:4885   mov      word ptr es:[bx],0000
  8037. E527:488A   dec      bx
  8038. E527:488B   dec      bx
  8039. E527:488C   mov      word ptr es:[bx],0000
  8040. E527:4891   lds      si,ss:[0076]
  8041. E527:4896   mov      [si+0E],bx
  8042. E527:4899   mov      [si+10],es
  8043. E527:489C   mov      word ptr [si+12],0100
  8044. E527:48A1   mov      [si+14],es
  8045. E527:48A4   xor      ax,ax
  8046. E527:48A6   clc      
  8047. E527:48A7   jmp      48AA
  8048. E527:48A9   stc      
  8049. E527:48AA   call     4CDC
  8050. E527:48AD   mov      es,ss:[0080]
  8051. E527:48B2   call     4CDC
  8052. E527:48B5   jmp      48BA
  8053. E527:48B7   xor      ax,ax
  8054. E527:48B9   clc      
  8055. E527:48BA   ret      
  8056. E527:48BB   cmp      byte ptr ss:[0087],03
  8057. E527:48C1   je       48E7
  8058. E527:48C3   call     4AB1
  8059. E527:48C6   jnb      48CB
  8060. E527:48C8   jmp      4980
  8061. E527:48CB   call     4BEE
  8062. E527:48CE   jnb      48D3
  8063. E527:48D0   jmp      497C
  8064. E527:48D3   sub      bx,10
  8065. E527:48D6   jnb      48DE
  8066. E527:48D8   mov      ax,0008
  8067. E527:48DB   jmp      497C
  8068. E527:48DE   mov      ax,es
  8069. E527:48E0   add      ax,0010
  8070. E527:48E3   mov      es,ax
  8071. E527:48E5   jmp      48EA
  8072. E527:48E7   call     4CC4
  8073. E527:48EA   call     4996
  8074. E527:48ED   jb       4904
  8075. E527:48EF   call     49E7
  8076. E527:48F2   jb       4904
  8077. E527:48F4   call     4A3F
  8078. E527:48F7   jb       4904
  8079. E527:48F9   cmp      byte ptr ss:[0087],03
  8080. E527:48FF   jne      490F
  8081. E527:4901   jmp      498A
  8082. E527:4904   cmp      byte ptr ss:[0087],03
  8083. E527:490A   jne      4975
  8084. E527:490C   stc      
  8085. E527:490D   jmp      498D
  8086. E527:490F   call     4C10
  8087. E527:4912   mov      dx,es
  8088. E527:4914   sub      dx,10
  8089. E527:4917   mov      es,dx
  8090. E527:4919   call     32FF
  8091. E527:491C   call     4C29
  8092. E527:491F   mov      ax,ss
  8093. E527:4921   mov      es,ax
  8094. E527:4923   mov      si,01A3
  8095. E527:4926   add      dx,10
  8096. E527:4929   cmp      byte ptr ss:[0087],01
  8097. E527:492F   je       4940
  8098. E527:4931   dec      byte ptr ss:[0111]
  8099. E527:4936   mov      ax,ss
  8100. E527:4938   mov      ds,ax
  8101. E527:493A   call     43B4
  8102. E527:493D   jmp      4D67
  8103. E527:4940   add      ss:[si+0E],dx
  8104. E527:4944   add      ss:[si+16],dx
  8105. E527:4948   mov      es,ss:[si+0E]
  8106. E527:494C   mov      bx,ss:[si+10]
  8107. E527:4950   dec      bx
  8108. E527:4951   dec      bx
  8109. E527:4952   mov      word ptr es:[bx],0000
  8110. E527:4957   lds      si,ss:[0076]
  8111. E527:495C   mov      [si+0E],bx
  8112. E527:495F   mov      [si+10],es
  8113. E527:4962   mov      ax,ss:[si+14]
  8114. E527:4966   mov      [si+12],ax
  8115. E527:4969   mov      ax,ss:[si+16]
  8116. E527:496D   mov      [si+14],es
  8117. E527:4970   xor      ax,ax
  8118. E527:4972   clc      
  8119. E527:4973   jmp      497D
  8120. E527:4975   mov      bx,es
  8121. E527:4977   sub      bx,10
  8122. E527:497A   mov      es,bx
  8123. E527:497C   stc      
  8124. E527:497D   call     4CDC
  8125. E527:4980   mov      es,ss:[0080]
  8126. E527:4985   call     4CDC
  8127. E527:4988   jmp      498D
  8128. E527:498A   xor      ax,ax
  8129. E527:498C   clc      
  8130. E527:498D   ret      
  8131. Int21_Fn59 Get extended error info
  8132. E527:498E   mov      ax,[0117]
  8133. E527:4991   xor      bx,bx
  8134. E527:4993   xor      ch,ch
  8135. E527:4995   ret      
  8136. E527:4996   push     bx
  8137. E527:4997   push     es
  8138. E527:4998   add      bx,10
  8139. E527:499B   mov      ax,es
  8140. E527:499D   sub      ax,0010
  8141. E527:49A0   mov      es,ax
  8142. E527:49A2   mov      si,01A3
  8143. E527:49A5   mov      dx,ss:[si+04]
  8144. E527:49A9   mov      cl,05
  8145. E527:49AB   shl      dx,cl
  8146. E527:49AD   add      dx,10
  8147. E527:49B0   sub      dx,ss:[si+08]
  8148. E527:49B4   add      dx,ss:[si+0A]
  8149. E527:49B8   cmp      bx,dx
  8150. E527:49BA   jnb      49C1
  8151. E527:49BC   mov      ax,0008
  8152. E527:49BF   jmp      49E4
  8153. E527:49C1   mov      bx,dx
  8154. E527:49C3   sub      bx,ss:[si+0A]
  8155. E527:49C7   add      bx,ss:[si+0C]
  8156. E527:49CB   jnb      49D0
  8157. E527:49CD   mov      bx,FFFF
  8158. E527:49D0   lds      si,ss:[00AB]
  8159. E527:49D5   push     word ptr [si+02]
  8160. E527:49D8   call     3141              Int21_Fn4A
  8161. E527:49DB   lds      si,ss:[00AB]
  8162. E527:49E0   pop      word ptr [si+02]
  8163. E527:49E3   clc      
  8164. E527:49E4   pop      es
  8165. E527:49E5   pop      bx
  8166. E527:49E6   ret      
  8167. E527:49E7   push     es
  8168. E527:49E8   mov      si,016D
  8169. E527:49EB   mov      dx,ss:[si+1A]
  8170. E527:49EF   push     dx
  8171. E527:49F0   mov      si,01A3
  8172. E527:49F3   mov      ax,ss:[si+08]
  8173. E527:49F7   mov      bx,0010
  8174. E527:49FA   mul      bx
  8175. E527:49FC   mov      bx,dx
  8176. E527:49FE   push     ax
  8177. E527:49FF   mov      cx,0200
  8178. E527:4A02   div      cx
  8179. E527:4A04   mov      cx,ss:[si+04]
  8180. E527:4A08   sub      cx,ax
  8181. E527:4A0A   pop      ax
  8182. E527:4A0B   pop      dx
  8183. E527:4A0C   jbe      4A1E
  8184. E527:4A0E   xor      di,di
  8185. E527:4A10   push     cx
  8186. E527:4A11   mov      cx,0200
  8187. E527:4A14   call     4A24
  8188. E527:4A17   pop      cx
  8189. E527:4A18   jb       4A1E
  8190. E527:4A1A   loop     4A10
  8191. E527:4A1C   jmp      4A22
  8192. E527:4A1E   mov      ax,000B
  8193. E527:4A21   stc      
  8194. E527:4A22   pop      es
  8195. E527:4A23   ret      
  8196. E527:4A24   push     ax
  8197. E527:4A25   push     bx
  8198. E527:4A26   mov      bx,di
  8199. E527:4A28   call     4345
  8200. E527:4A2B   mov      di,bx
  8201. E527:4A2D   pop      bx
  8202. E527:4A2E   push     bx
  8203. E527:4A2F   call     3E78
  8204. E527:4A32   pop      bx
  8205. E527:4A33   pop      ax
  8206. E527:4A34   jb       4A3E
  8207. E527:4A36   add      ax,cx
  8208. E527:4A38   adc      bx,00
  8209. E527:4A3B   add      di,cx
  8210. E527:4A3D   clc      
  8211. E527:4A3E   ret      
  8212. E527:4A3F   push     es
  8213. E527:4A40   cmp      byte ptr ss:[0087],03
  8214. E527:4A46   je       4A4C
  8215. E527:4A48   mov      bx,es
  8216. E527:4A4A   jmp      4A54
  8217. E527:4A4C   lds      si,ss:[0076]
  8218. E527:4A51   mov      bx,[si+02]
  8219. E527:4A54   mov      ax,ss
  8220. E527:4A56   mov      es,ax
  8221. E527:4A58   mov      di,016D
  8222. E527:4A5B   mov      dx,es:[di+1A]
  8223. E527:4A5F   mov      si,01A3
  8224. E527:4A62   mov      cx,es:[si+06]
  8225. E527:4A66   mov      di,007A
  8226. E527:4A69   jcxz     4A72
  8227. E527:4A6B   call     4A7B
  8228. E527:4A6E   jb       4A75
  8229. E527:4A70   loop     4A6B
  8230. E527:4A72   clc      
  8231. E527:4A73   jmp      4A79
  8232. E527:4A75   mov      ax,000B
  8233. E527:4A78   stc      
  8234. E527:4A79   pop      es
  8235. E527:4A7A   ret      
  8236. E527:4A7B   push     cx
  8237. E527:4A7C   push     dx
  8238. E527:4A7D   push     bx
  8239. E527:4A7E   push     dx
  8240. E527:4A7F   dec      cx
  8241. E527:4A80   mov      ax,0004
  8242. E527:4A83   mul      cx
  8243. E527:4A85   mov      bx,dx
  8244. E527:4A87   add      ax,es:[si+18]
  8245. E527:4A8B   adc      bx,00
  8246. E527:4A8E   pop      dx
  8247. E527:4A8F   mov      cx,0004
  8248. E527:4A92   call     3E78
  8249. E527:4A95   pop      bx
  8250. E527:4A96   jb       4AAE
  8251. E527:4A98   cmp      ax,cx
  8252. E527:4A9A   jne      4AAD
  8253. E527:4A9C   add      es:[di+02],bx
  8254. E527:4AA0   push     si
  8255. E527:4AA1   push     ds
  8256. E527:4AA2   lds      si,es:[di]
  8257. E527:4AA5   add      [si],bx
  8258. E527:4AA7   pop      ds
  8259. E527:4AA8   pop      si
  8260. E527:4AA9   clc      
  8261. E527:4AAA   jmp      4AAE
  8262. E527:4AAC   nop      
  8263. E527:4AAD   stc      
  8264. E527:4AAE   pop      dx
  8265. E527:4AAF   pop      cx
  8266. E527:4AB0   ret      
  8267. E527:4AB1   push     di
  8268. E527:4AB2   push     es
  8269. E527:4AB3   lds      si,ss:[0076]
  8270. E527:4AB8   mov      ax,[si]
  8271. E527:4ABA   xor      di,di
  8272. E527:4ABC   or       ax,ax
  8273. E527:4ABE   jne      4AD3
  8274. E527:4AC0   mov      es,ss:[007E]
  8275. E527:4AC5   mov      ax,es:[di+2C]
  8276. E527:4AC9   or       ax,ax
  8277. E527:4ACB   jne      4AD3
  8278. E527:4ACD   mov      [0080],ax
  8279. E527:4AD0   jmp      4B3D
  8280. E527:4AD2   nop      
  8281. E527:4AD3   mov      es,ax
  8282. E527:4AD5   xor      al,al
  8283. E527:4AD7   mov      cx,8000
  8284. E527:4ADA   repne    scasb
  8285. E527:4ADC   jcxz     4B39
  8286. E527:4ADE   dec      cx
  8287. E527:4ADF   jcxz     4B39
  8288. E527:4AE1   scasb
  8289. E527:4AE2   jne      4ADA
  8290. E527:4AE4   mov      ax,8000
  8291. E527:4AE7   sub      ax,cx
  8292. E527:4AE9   push     ax
  8293. E527:4AEA   lds      si,ss:[00A6]
  8294. E527:4AEF   call     4B40
  8295. E527:4AF2   pop      ax
  8296. E527:4AF3   add      ax,dx
  8297. E527:4AF5   mov      cx,ax
  8298. E527:4AF7   add      ax,0002
  8299. E527:4AFA   push     bx
  8300. E527:4AFB   push     dx
  8301. E527:4AFC   call     437F
  8302. E527:4AFF   mov      bx,ax
  8303. E527:4B01   lds      si,ss:[00AB]
  8304. E527:4B06   push     word ptr [si+02]
  8305. E527:4B09   call     304E
  8306. E527:4B0C   lds      si,ss:[00AB]
  8307. E527:4B11   pop      word ptr [si+02]
  8308. E527:4B14   pop      dx
  8309. E527:4B15   pop      bx
  8310. E527:4B16   jb       4B3D
  8311. E527:4B18   mov      [0080],ax
  8312. E527:4B1C   mov      si,es
  8313. E527:4B1E   mov      ds,si
  8314. E527:4B20   xor      si,si
  8315. E527:4B22   mov      es,ax
  8316. E527:4B24   mov      di,si
  8317. E527:4B26   sub      cx,dx
  8318. E527:4B28   rep      movsb
  8319. E527:4B2A   mov      ax,0001
  8320. E527:4B2D   stosw
  8321. E527:4B2E   lds      si,ss:[00A6]
  8322. E527:4B33   call     4B95
  8323. E527:4B36   clc      
  8324. E527:4B37   jmp      4B3D
  8325. E527:4B39   mov      ax,000A
  8326. E527:4B3C   stc      
  8327. E527:4B3D   pop      es
  8328. E527:4B3E   pop      di
  8329. E527:4B3F   ret      
  8330. E527:4B40   push     si
  8331. E527:4B41   mov      bx,0002
  8332. E527:4B44   lodsw
  8333. E527:4B45   cmp      ah,3A
  8334. E527:4B48   je       4B4D
  8335. E527:4B4A   sub      si,02
  8336. E527:4B4D   mov      al,[si]
  8337. E527:4B4F   cmp      al,ss:[0114]
  8338. E527:4B54   je       4B6C
  8339. E527:4B56   push     si
  8340. E527:4B57   push     ds
  8341. E527:4B58   call     1722
  8342. E527:4B5B   call     435A
  8343. E527:4B5E   mov      bx,cx
  8344. E527:4B60   mov      al,[0114]
  8345. E527:4B64   cmp      [bx+si+FF],al
  8346. E527:4B67   je       4B6A
  8347. E527:4B69   inc      dx
  8348. E527:4B6A   pop      ds
  8349. E527:4B6B   pop      si
  8350. E527:4B6C   mov      dx,bx
  8351. E527:4B6E   mov      cx,0009
  8352. E527:4B71   call     43D8
  8353. E527:4B74   jcxz     4B92
  8354. E527:4B76   cmp      al,2A
  8355. E527:4B78   jne      4B7D
  8356. E527:4B7A   mov      cx,0008
  8357. E527:4B7D   add      dx,cx
  8358. E527:4B7F   add      si,cx
  8359. E527:4B81   mov      cx,0004
  8360. E527:4B84   call     43F3
  8361. E527:4B87   jb       4B92
  8362. E527:4B89   cmp      al,2A
  8363. E527:4B8B   jne      4B90
  8364. E527:4B8D   mov      cx,0004
  8365. E527:4B90   add      dx,cx
  8366. E527:4B92   inc      dx
  8367. E527:4B93   pop      si
  8368. E527:4B94   ret      
  8369. E527:4B95   lodsw
  8370. E527:4B96   cmp      ah,3A
  8371. E527:4B99   je       4B9E
  8372. E527:4B9B   sub      si,02
  8373. E527:4B9E   push     si
  8374. E527:4B9F   push     ds
  8375. E527:4BA0   call     1722
  8376. E527:4BA3   mov      cx,bx
  8377. E527:4BA5   rep      movsb
  8378. E527:4BA7   cmp      bx,02
  8379. E527:4BAA   jbe      4BB6
  8380. E527:4BAC   mov      al,[0114]
  8381. E527:4BB0   cmp      [si+FF],al
  8382. E527:4BB3   je       4BB6
  8383. E527:4BB5   stosb
  8384. E527:4BB6   pop      ds
  8385. E527:4BB7   pop      si
  8386. E527:4BB8   mov      cx,0009
  8387. E527:4BBB   call     43D8
  8388. E527:4BBE   jcxz     4BEA
  8389. E527:4BC0   push     cx
  8390. E527:4BC1   rep      movsb
  8391. E527:4BC3   pop      bx
  8392. E527:4BC4   cmp      al,2A
  8393. E527:4BC6   jne      4BD1
  8394. E527:4BC8   mov      cx,0008
  8395. E527:4BCB   sub      cx,bx
  8396. E527:4BCD   mov      al,3F
  8397. E527:4BCF   rep      stosb
  8398. E527:4BD1   mov      cx,0004
  8399. E527:4BD4   call     43F3
  8400. E527:4BD7   jb       4BEA
  8401. E527:4BD9   push     cx
  8402. E527:4BDA   rep      movsb
  8403. E527:4BDC   pop      bx
  8404. E527:4BDD   cmp      al,2A
  8405. E527:4BDF   jne      4BEA
  8406. E527:4BE1   mov      cx,0004
  8407. E527:4BE4   sub      cx,bx
  8408. E527:4BE6   mov      al,3F
  8409. E527:4BE8   rep      stosb
  8410. E527:4BEA   xor      al,al
  8411. E527:4BEC   stosb
  8412. E527:4BED   ret      
  8413. E527:4BEE   lds      si,ss:[00AB]
  8414. E527:4BF3   push     word ptr [si+02]
  8415. E527:4BF6   mov      bx,FFFF
  8416. E527:4BF9   call     304E
  8417. E527:4BFC   cmp      ax,0008
  8418. E527:4BFF   stc      
  8419. E527:4C00   jne      4C07
  8420. E527:4C02   call     304E
  8421. E527:4C05   mov      es,ax
  8422. E527:4C07   lds      si,ss:[00AB]
  8423. E527:4C0C   pop      word ptr [si+02]
  8424. E527:4C0F   ret      
  8425. E527:4C10   push     es
  8426. E527:4C11   lds      si,ss:[00AB]
  8427. E527:4C16   lds      si,[si+12]
  8428. E527:4C19   xor      di,di
  8429. E527:4C1B   mov      es,di
  8430. E527:4C1D   mov      di,0088
  8431. E527:4C20   mov      es:[di],si
  8432. E527:4C23   mov      es:[di+02],ds
  8433. E527:4C27   pop      es
  8434. E527:4C28   ret      
  8435. E527:4C29   push     bx
  8436. E527:4C2A   push     dx
  8437. E527:4C2B   mov      ss:[007E],es
  8438. E527:4C30   push     es
  8439. E527:4C31   xor      bx,bx
  8440. E527:4C33   mov      cx,ss:[0129]
  8441. E527:4C38   call     2E21
  8442. E527:4C3B   jb       4C40
  8443. E527:4C3D   inc      word ptr es:[di]
  8444. E527:4C40   inc      bx
  8445. E527:4C41   loop     4C38
  8446. E527:4C43   pop      es
  8447. E527:4C44   mov      ax,[0080]
  8448. E527:4C48   xor      di,di
  8449. E527:4C4A   mov      es:[di+2C],ax
  8450. E527:4C4E   mov      word ptr ss:[004C],0080
  8451. E527:4C55   mov      ss:[004E],es
  8452. E527:4C5A   mov      dx,es
  8453. E527:4C5C   dec      dx
  8454. E527:4C5D   mov      ds,dx
  8455. E527:4C5F   mov      [di+01],es
  8456. E527:4C62   dec      ax
  8457. E527:4C63   mov      ds,ax
  8458. E527:4C65   mov      [di+01],es
  8459. E527:4C68   lds      si,ss:[0076]
  8460. E527:4C6D   lds      si,[si+02]
  8461. E527:4C70   mov      cl,[si]
  8462. E527:4C72   xor      ch,ch
  8463. E527:4C74   inc      cx
  8464. E527:4C75   inc      cx
  8465. E527:4C76   cmp      cx,0080
  8466. E527:4C7A   jbe      4C7F
  8467. E527:4C7C   mov      cx,0080
  8468. E527:4C7F   lea      di,[di+0080]
  8469. E527:4C83   rep      movsb
  8470. E527:4C85   xor      ax,ax
  8471. E527:4C87   lds      si,ss:[0076]
  8472. E527:4C8C   lds      si,[si+06]
  8473. E527:4C8F   mov      bl,[si]
  8474. E527:4C91   cmp      bl,ss:[0028]
  8475. E527:4C96   jbe      4C9A
  8476. E527:4C98   mov      al,FF
  8477. E527:4C9A   xor      di,di
  8478. E527:4C9C   lea      di,[di+5C]
  8479. E527:4C9F   mov      cx,0010
  8480. E527:4CA2   rep      movsb
  8481. E527:4CA4   lds      si,ss:[0076]
  8482. E527:4CA9   lds      si,[si+0A]
  8483. E527:4CAC   mov      bl,[si]
  8484. E527:4CAE   cmp      bl,ss:[0028]
  8485. E527:4CB3   jbe      4CB7
  8486. E527:4CB5   mov      ah,FF
  8487. E527:4CB7   xor      di,di
  8488. E527:4CB9   lea      di,[di+6C]
  8489. E527:4CBC   mov      cx,0010
  8490. E527:4CBF   rep      movsb
  8491. E527:4CC1   pop      dx
  8492. E527:4CC2   pop      bx
  8493. E527:4CC3   ret      
  8494. E527:4CC4   les      di,ss:[0076]
  8495. E527:4CC9   mov      ax,es:[di]
  8496. E527:4CCC   mov      es,ss:[007E]
  8497. E527:4CD1   xor      di,di
  8498. E527:4CD3   mov      bx,es:[di+02]
  8499. E527:4CD7   sub      bx,ax
  8500. E527:4CD9   mov      es,ax
  8501. E527:4CDB   ret      
  8502. E527:4CDC   push     ax
  8503. E527:4CDD   pushf
  8504. E527:4CDE   call     311C
  8505. E527:4CE1   popf
  8506. E527:4CE2   pop      ax
  8507. E527:4CE3   ret      
  8508. E527:4CE4   mov      dx,es
  8509. E527:4CE6   mov      ds,dx
  8510. E527:4CE8   mov      ss,dx
  8511. E527:4CEA   mov      sp,bx
  8512. E527:4CEC   xor      dx,dx
  8513. E527:4CEE   push     dx
  8514. E527:4CEF   mov      bx,0100
  8515. E527:4CF2   push     ds
  8516. E527:4CF3   push     bx
  8517. E527:4CF4   mov      ax,dx
  8518. E527:4CF6   mov      bx,dx
  8519. E527:4CF8   mov      cx,dx
  8520. E527:4CFA   mov      si,dx
  8521. E527:4CFC   mov      di,dx
  8522. E527:4CFE   mov      bp,dx
  8523. E527:4D00   jmp      4D94
  8524. E527:4D03   push     bx
  8525. E527:4D04   mov      al,[0051]
  8526. E527:4D08   push     ax
  8527. E527:4D09   mov      ah,0B
  8528. E527:4D0B   int      61
  8529. E527:4D0D   pop      dx
  8530. E527:4D0E   jnb      4D12
  8531. E527:4D10   xor      dl,dl
  8532. E527:4D12   inc      dl
  8533. E527:4D14   mov      dh,dl
  8534. E527:4D16   mov      ax,2401
  8535. E527:4D19   int      61
  8536. E527:4D1B   xor      cl,cl
  8537. E527:4D1D   mov      ax,0301
  8538. E527:4D20   int      61
  8539. E527:4D22   mov      si,016D
  8540. E527:4D25   mov      dx,ss:[si+1A]
  8541. E527:4D29   xor      bx,bx
  8542. E527:4D2B   mov      cx,bx
  8543. E527:4D2D   lds      si,ss:[003E]
  8544. E527:4D32   call     155C
  8545. E527:4D35   mov      ax,dx
  8546. E527:4D37   mul      word ptr [si+02]
  8547. E527:4D3A   mov      cx,0004
  8548. E527:4D3D   shr      dx,1
  8549. E527:4D3F   rcr      ax,1
  8550. E527:4D41   loop     4D3D
  8551. E527:4D43   mov      di,ss:[si+1C]
  8552. E527:4D47   mov      si,ss:[si+1E]
  8553. E527:4D4B   mov      bx,si
  8554. E527:4D4D   mov      cx,di
  8555. E527:4D4F   pop      dx
  8556. E527:4D50   mov      bp,es
  8557. E527:4D52   mov      ds,bp
  8558. E527:4D54   mov      ss,bp
  8559. E527:4D56   mov      sp,dx
  8560. E527:4D58   xor      dx,dx
  8561. E527:4D5A   push     dx
  8562. E527:4D5B   add      ax,C000
  8563. E527:4D5E   push     ax
  8564. E527:4D5F   push     dx
  8565. E527:4D60   mov      ax,dx
  8566. E527:4D62   mov      bp,dx
  8567. E527:4D64   jmp      4D94
  8568. E527:4D66   nop      
  8569. E527:4D67   mov      cx,es:[si+0E]
  8570. E527:4D6B   add      cx,dx
  8571. E527:4D6D   mov      ss,cx
  8572. E527:4D6F   mov      sp,es:[si+10]
  8573. E527:4D73   mov      cx,es:[si+16]
  8574. E527:4D77   add      cx,dx
  8575. E527:4D79   mov      bx,es:[si+14]
  8576. E527:4D7D   sub      dx,10
  8577. E527:4D80   mov      ds,dx
  8578. E527:4D82   mov      es,dx
  8579. E527:4D84   push     cx
  8580. E527:4D85   push     bx
  8581. E527:4D86   xor      dx,dx
  8582. E527:4D88   mov      ax,dx
  8583. E527:4D8A   mov      bx,dx
  8584. E527:4D8C   mov      cx,dx
  8585. E527:4D8E   mov      si,dx
  8586.